Files
taiji-AI-PAD/test_apillama_fix.py
T
2025-12-25 07:56:49 +00:00

73 lines
2.4 KiB
Python

#!/usr/bin/env python3
"""测试APILLAMA修复"""
import sys
sys.path.insert(0, '/home/taiji/tools/taiji-AI-PAD/services/data-ingestion')
from apillama_processor import APILLAMAProcessor
import asyncio
async def test_extract_parameters():
"""测试参数提取"""
processor = APILLAMAProcessor()
# 测试用例1:没有location字段的参数
api_doc1 = {
"title": "Weather API",
"description": "Returns forecast information",
"parameters": [
{"name": "location", "type": "string", "description": "City name", "required": True}
]
}
params1 = processor._extract_parameters(api_doc1)
print("测试用例1 - 没有location字段:")
print(f" 输入参数: {api_doc1['parameters']}")
print(f" 提取结果: {params1}")
print(f" ✅ location字段已添加: {'location' in params1[0]}")
print()
# 测试用例2:有location字段的参数
api_doc2 = {
"parameters": [
{"name": "id", "type": "string", "location": "path", "required": True}
]
}
params2 = processor._extract_parameters(api_doc2)
print("测试用例2 - 有location字段:")
print(f" 输入参数: {api_doc2['parameters']}")
print(f" 提取结果: {params2}")
print(f" ✅ location字段保持不变: {params2[0]['location'] == 'path'}")
print()
# 测试用例3:空参数列表
api_doc3 = {}
params3 = processor._extract_parameters(api_doc3)
print("测试用例3 - 空参数列表:")
print(f" 输入参数: 无")
print(f" 提取结果: {params3}")
print(f" ✅ 生成默认参数: {len(params3) > 0 and 'location' in params3[0]}")
print()
# 验证所有参数都有必需字段
all_params = params1 + params2 + params3
print("验证所有参数:")
for i, param in enumerate(all_params, 1):
has_location = 'location' in param
has_type = 'type' in param
has_required = 'required' in param
print(f" 参数{i}: location={has_location}, type={has_type}, required={has_required}")
all_valid = all('location' in p and 'type' in p and 'required' in p for p in all_params)
print(f"\n{'✅' if all_valid else '❌'} 所有参数都包含必需字段: {all_valid}")
return all_valid
if __name__ == "__main__":
result = asyncio.run(test_extract_parameters())
sys.exit(0 if result else 1)