2025-12-15 13:35:57 +08:00
|
|
|
|
"""
|
|
|
|
|
|
直接测试模板管理API端点
|
|
|
|
|
|
不需要浏览器,通过HTTP请求测试
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
|
|
import requests
|
|
|
|
|
|
import os
|
|
|
|
|
|
import json
|
|
|
|
|
|
from datetime import datetime
|
|
|
|
|
|
|
|
|
|
|
|
BASE_URL = "http://localhost:8000"
|
|
|
|
|
|
API_BASE = f"{BASE_URL}/fs-ai-asistant/api/workflow/lawrisk"
|
|
|
|
|
|
|
|
|
|
|
|
def test_api_endpoints():
|
|
|
|
|
|
"""测试模板相关的API端点"""
|
|
|
|
|
|
|
|
|
|
|
|
print("=" * 60)
|
|
|
|
|
|
print("Template Management API Test")
|
|
|
|
|
|
print("=" * 60)
|
|
|
|
|
|
|
|
|
|
|
|
# 测试1: 获取模板元数据
|
|
|
|
|
|
print("\n[1/5] Getting template metadata...")
|
|
|
|
|
|
try:
|
|
|
|
|
|
response = requests.get(f"{API_BASE}/admin/templates/permit")
|
|
|
|
|
|
print(f" Status: {response.status_code}")
|
|
|
|
|
|
|
|
|
|
|
|
if response.status_code == 200:
|
|
|
|
|
|
data = response.json()
|
|
|
|
|
|
print(f" Success! Response data:")
|
|
|
|
|
|
print(f" {json.dumps(data, indent=2, ensure_ascii=False)}")
|
|
|
|
|
|
else:
|
|
|
|
|
|
print(f" Failed: {response.text}")
|
|
|
|
|
|
except Exception as e:
|
|
|
|
|
|
print(f" Error: {e}")
|
|
|
|
|
|
|
|
|
|
|
|
# 测试2: 下载模板
|
|
|
|
|
|
print("\n[2/5] Downloading template...")
|
|
|
|
|
|
try:
|
|
|
|
|
|
response = requests.get(f"{API_BASE}/admin/permit-import/template")
|
|
|
|
|
|
print(f" Status: {response.status_code}")
|
|
|
|
|
|
|
|
|
|
|
|
if response.status_code == 200:
|
|
|
|
|
|
filename = "api_downloaded_template.xlsx"
|
|
|
|
|
|
with open(filename, 'wb') as f:
|
|
|
|
|
|
f.write(response.content)
|
|
|
|
|
|
print(f" Success! Downloaded {len(response.content)} bytes to {filename}")
|
|
|
|
|
|
else:
|
|
|
|
|
|
print(f" Failed: {response.text}")
|
|
|
|
|
|
except Exception as e:
|
|
|
|
|
|
print(f" Error: {e}")
|
|
|
|
|
|
|
|
|
|
|
|
# 测试3: 检查目录
|
|
|
|
|
|
print("\n[3/5] Checking template directory...")
|
|
|
|
|
|
template_dir = "data/template"
|
|
|
|
|
|
if os.path.exists(template_dir):
|
|
|
|
|
|
files = os.listdir(template_dir)
|
|
|
|
|
|
print(f" Files in {template_dir}:")
|
|
|
|
|
|
for f in files:
|
|
|
|
|
|
size = os.path.getsize(os.path.join(template_dir, f))
|
|
|
|
|
|
print(f" - {f} ({size} bytes)")
|
|
|
|
|
|
else:
|
|
|
|
|
|
print(f" Directory {template_dir} not found")
|
|
|
|
|
|
|
|
|
|
|
|
# 测试4: 检查测试文件
|
|
|
|
|
|
print("\n[4/5] Checking test files...")
|
|
|
|
|
|
test_files = [
|
|
|
|
|
|
"RiskTemplate_Test.xlsx",
|
|
|
|
|
|
"RiskTemplate_Original.xlsx"
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
for f in test_files:
|
|
|
|
|
|
if os.path.exists(f):
|
|
|
|
|
|
size = os.path.getsize(f)
|
|
|
|
|
|
print(f" Found: {f} ({size} bytes)")
|
|
|
|
|
|
else:
|
|
|
|
|
|
print(f" Missing: {f}")
|
|
|
|
|
|
|
|
|
|
|
|
# 测试5: 模拟上传(使用session)
|
|
|
|
|
|
print("\n[5/5] Testing upload with session...")
|
|
|
|
|
|
try:
|
|
|
|
|
|
session = requests.Session()
|
|
|
|
|
|
|
|
|
|
|
|
# 先检查登录状态
|
|
|
|
|
|
response = session.get(f"{BASE_URL}/auth/me")
|
|
|
|
|
|
print(f" Auth check status: {response.status_code}")
|
|
|
|
|
|
|
|
|
|
|
|
if response.status_code == 200:
|
|
|
|
|
|
user_data = response.json()
|
|
|
|
|
|
print(f" Logged in as: {user_data.get('user', {}).get('username', 'unknown')}")
|
|
|
|
|
|
|
|
|
|
|
|
# 尝试上传测试文件
|
|
|
|
|
|
if os.path.exists("RiskTemplate_Test.xlsx"):
|
|
|
|
|
|
with open("RiskTemplate_Test.xlsx", 'rb') as f:
|
|
|
|
|
|
files = {'file': f}
|
|
|
|
|
|
upload_response = session.post(
|
|
|
|
|
|
f"{API_BASE}/admin/templates/permit",
|
|
|
|
|
|
files=files
|
|
|
|
|
|
)
|
|
|
|
|
|
print(f" Upload status: {upload_response.status_code}")
|
|
|
|
|
|
|
|
|
|
|
|
if upload_response.status_code == 200:
|
|
|
|
|
|
print(f" Upload successful!")
|
|
|
|
|
|
print(f" Response: {upload_response.json()}")
|
|
|
|
|
|
else:
|
|
|
|
|
|
print(f" Upload failed: {upload_response.text}")
|
|
|
|
|
|
else:
|
|
|
|
|
|
print(f" Test file not found, skipping upload")
|
|
|
|
|
|
else:
|
|
|
|
|
|
print(f" Not logged in (this is expected)")
|
|
|
|
|
|
print(f" To test upload manually, please:")
|
2025-12-20 11:25:34 +08:00
|
|
|
|
print(f" 1. Login at {BASE_URL}/fs-ai-asistant/api/workflow/lawrisk/login")
|
2025-12-15 13:35:57 +08:00
|
|
|
|
print(f" 2. Then run this script again")
|
|
|
|
|
|
except Exception as e:
|
|
|
|
|
|
print(f" Error: {e}")
|
|
|
|
|
|
|
|
|
|
|
|
print("\n" + "=" * 60)
|
|
|
|
|
|
print("API Test Complete")
|
|
|
|
|
|
print("=" * 60)
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
|
test_api_endpoints()
|