test_calendar_api_integration.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. """
  2. 测试日历API集成功能
  3. """
  4. import sys
  5. import os
  6. from datetime import date
  7. # 添加项目路径到sys.path
  8. sys.path.append(os.path.dirname(os.path.abspath(__file__)))
  9. from app.core.data_parse.calendar import get_calendar_by_date, CalendarService
  10. def test_calendar_api_integration():
  11. """测试日历API集成功能"""
  12. print("=== 测试日历API集成功能 ===")
  13. # 测试用例1: 测试一个可能不在数据库中的日期
  14. print("\n1. 测试API集成功能:")
  15. test_date = "2025-08-24" # 这个日期可能不在数据库中
  16. print(f"查询日期: {test_date}")
  17. try:
  18. result = get_calendar_by_date(test_date)
  19. print(f"查询结果: {result}")
  20. if result.get('return_code') == 200:
  21. print("✅ 查询成功!")
  22. if result.get('result'):
  23. print(f" - ID: {result['result'].get('id')}")
  24. print(f" - 阳历: {result['result'].get('yangli')}")
  25. print(f" - 阴历: {result['result'].get('yinli')}")
  26. print(f" - 五行: {result['result'].get('wuxing')}")
  27. else:
  28. print(f"❌ 查询失败: {result.get('error')}")
  29. except Exception as e:
  30. print(f"❌ 测试过程中发生异常: {e}")
  31. import traceback
  32. traceback.print_exc()
  33. print("\n✓ API集成测试完成!")
  34. def test_calendar_service_methods():
  35. """测试CalendarService的新方法"""
  36. print("\n=== 测试CalendarService的新方法 ===")
  37. try:
  38. # 创建服务实例
  39. service = CalendarService()
  40. print("✅ CalendarService实例创建成功")
  41. # 测试fetch_calendar_from_api方法
  42. test_date = date(2025, 8, 24)
  43. print(f"\n测试fetch_calendar_from_api方法,日期: {test_date}")
  44. if hasattr(service, 'fetch_calendar_from_api'):
  45. print("✅ fetch_calendar_from_api方法存在")
  46. else:
  47. print("❌ fetch_calendar_from_api方法不存在")
  48. if hasattr(service, 'save_calendar_from_api'):
  49. print("✅ save_calendar_from_api方法存在")
  50. else:
  51. print("❌ save_calendar_from_api方法不存在")
  52. except Exception as e:
  53. print(f"❌ 测试过程中发生异常: {e}")
  54. def test_config_import():
  55. """测试配置文件导入"""
  56. print("\n=== 测试配置文件导入 ===")
  57. try:
  58. from app.core.data_parse.calendar_config import CALENDAR_API_CONFIG
  59. print("✅ 配置文件导入成功")
  60. print(f"API配置: {CALENDAR_API_CONFIG}")
  61. except ImportError as e:
  62. print(f"❌ 配置文件导入失败: {e}")
  63. except Exception as e:
  64. print(f"❌ 其他错误: {e}")
  65. def main():
  66. """主测试函数"""
  67. print("开始测试日历API集成功能...\n")
  68. try:
  69. test_config_import()
  70. test_calendar_service_methods()
  71. test_calendar_api_integration()
  72. print("\n🎉 所有测试完成!")
  73. print("\n新增功能特性:")
  74. print("- ✅ 当数据库中没有数据时自动调用外部API")
  75. print("- ✅ API数据自动保存到数据库")
  76. print("- ✅ 配置文件管理API设置")
  77. print("- ✅ 完整的错误处理和日志记录")
  78. print("- ✅ 支持API数据格式转换")
  79. except Exception as e:
  80. print(f"❌ 测试失败: {e}")
  81. import traceback
  82. traceback.print_exc()
  83. if __name__ == "__main__":
  84. main()