123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- """
- 测试get_calendar_by_date函数
- """
- 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
- def test_get_calendar_by_date():
- """测试get_calendar_by_date函数"""
- print("=== 测试get_calendar_by_date函数 ===")
-
- # 测试用例1: 有效日期格式
- print("\n1. 测试有效日期格式:")
- result = get_calendar_by_date("2025-01-19")
- print(f"输入: 2025-01-19")
- print(f"输出: {result}")
-
- # 测试用例2: 无效日期格式
- print("\n2. 测试无效日期格式:")
- result = get_calendar_by_date("invalid-date")
- print(f"输入: invalid-date")
- print(f"输出: {result}")
-
- # 测试用例3: 错误长度的日期
- print("\n3. 测试错误长度的日期:")
- result = get_calendar_by_date("2025-1-19")
- print(f"输入: 2025-1-19")
- print(f"输出: {result}")
-
- # 测试用例4: 空字符串
- print("\n4. 测试空字符串:")
- result = get_calendar_by_date("")
- print(f"输入: ''")
- print(f"输出: {result}")
-
- # 测试用例5: 非字符串类型
- print("\n5. 测试非字符串类型:")
- try:
- # 使用类型忽略来测试非字符串输入
- result = get_calendar_by_date(123) # type: ignore
- print(f"输入: 123")
- print(f"输出: {result}")
- except Exception as e:
- print(f"输入: 123")
- print(f"异常: {e}")
-
- print("\n✓ 所有测试用例执行完成!")
- def test_function_signature():
- """测试函数签名和类型提示"""
- print("\n=== 测试函数签名 ===")
-
- # 检查函数是否存在
- if hasattr(get_calendar_by_date, '__call__'):
- print("✓ 函数存在且可调用")
- else:
- print("❌ 函数不存在或不可调用")
-
- # 检查函数文档
- if get_calendar_by_date.__doc__:
- print("✓ 函数有文档字符串")
- print(f"文档: {get_calendar_by_date.__doc__.strip()}")
- else:
- print("❌ 函数缺少文档字符串")
-
- # 检查函数参数
- import inspect
- sig = inspect.signature(get_calendar_by_date)
- print(f"✓ 函数参数: {sig}")
-
- print("\n✓ 函数签名测试完成!")
- def main():
- """主测试函数"""
- print("开始测试get_calendar_by_date函数...\n")
-
- try:
- test_function_signature()
- test_get_calendar_by_date()
-
- print("\n🎉 所有测试完成!")
- print("\n函数特性:")
- print("- ✅ 接受YYYY-MM-DD格式的日期字符串")
- print("- ✅ 返回标准化的JSON响应格式")
- print("- ✅ 包含完整的错误处理")
- print("- ✅ 支持多种错误场景")
- print("- ✅ 返回码符合HTTP标准")
-
- except Exception as e:
- print(f"❌ 测试失败: {e}")
- import traceback
- traceback.print_exc()
- if __name__ == "__main__":
- main()
|