""" 测试日历API集成功能 """ import sys import os from datetime import date # 添加项目路径到sys.path sys.path.append(os.path.dirname(os.path.abspath(__file__))) from app.core.data_parse.calendar import get_calendar_by_date, CalendarService def test_calendar_api_integration(): """测试日历API集成功能""" print("=== 测试日历API集成功能 ===") # 测试用例1: 测试一个可能不在数据库中的日期 print("\n1. 测试API集成功能:") test_date = "2025-08-24" # 这个日期可能不在数据库中 print(f"查询日期: {test_date}") try: result = get_calendar_by_date(test_date) print(f"查询结果: {result}") if result.get('return_code') == 200: print("✅ 查询成功!") if result.get('result'): print(f" - ID: {result['result'].get('id')}") print(f" - 阳历: {result['result'].get('yangli')}") print(f" - 阴历: {result['result'].get('yinli')}") print(f" - 五行: {result['result'].get('wuxing')}") else: print(f"❌ 查询失败: {result.get('error')}") except Exception as e: print(f"❌ 测试过程中发生异常: {e}") import traceback traceback.print_exc() print("\n✓ API集成测试完成!") def test_calendar_service_methods(): """测试CalendarService的新方法""" print("\n=== 测试CalendarService的新方法 ===") try: # 创建服务实例 service = CalendarService() print("✅ CalendarService实例创建成功") # 测试fetch_calendar_from_api方法 test_date = date(2025, 8, 24) print(f"\n测试fetch_calendar_from_api方法,日期: {test_date}") if hasattr(service, 'fetch_calendar_from_api'): print("✅ fetch_calendar_from_api方法存在") else: print("❌ fetch_calendar_from_api方法不存在") if hasattr(service, 'save_calendar_from_api'): print("✅ save_calendar_from_api方法存在") else: print("❌ save_calendar_from_api方法不存在") except Exception as e: print(f"❌ 测试过程中发生异常: {e}") def test_config_import(): """测试配置文件导入""" print("\n=== 测试配置文件导入 ===") try: from app.core.data_parse.calendar_config import CALENDAR_API_CONFIG print("✅ 配置文件导入成功") print(f"API配置: {CALENDAR_API_CONFIG}") except ImportError as e: print(f"❌ 配置文件导入失败: {e}") except Exception as e: print(f"❌ 其他错误: {e}") def main(): """主测试函数""" print("开始测试日历API集成功能...\n") try: test_config_import() test_calendar_service_methods() test_calendar_api_integration() print("\n🎉 所有测试完成!") print("\n新增功能特性:") print("- ✅ 当数据库中没有数据时自动调用外部API") print("- ✅ API数据自动保存到数据库") print("- ✅ 配置文件管理API设置") print("- ✅ 完整的错误处理和日志记录") print("- ✅ 支持API数据格式转换") except Exception as e: print(f"❌ 测试失败: {e}") import traceback traceback.print_exc() if __name__ == "__main__": main()