127 lines
4.3 KiB
Python
127 lines
4.3 KiB
Python
"""
|
|
测试模板管理功能
|
|
1. 下载当前模板
|
|
2. 创建新的测试模板
|
|
3. 上传新模板并验证
|
|
4. 恢复原始模板
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
import requests
|
|
from pathlib import Path
|
|
import tempfile
|
|
from openpyxl import Workbook
|
|
from openpyxl.styles import Font, PatternFill
|
|
|
|
# Flask应用地址
|
|
BASE_URL = "http://localhost:8000"
|
|
API_BASE = f"{BASE_URL}/fs-ai-asistant/api/workflow/lawrisk"
|
|
|
|
def download_template():
|
|
"""下载当前模板"""
|
|
print("Downloading current template...")
|
|
|
|
try:
|
|
response = requests.get(f"{API_BASE}/admin/permit-import/template")
|
|
|
|
if response.status_code == 200:
|
|
filename = "RiskTemplate_Original.xlsx"
|
|
with open(filename, 'wb') as f:
|
|
f.write(response.content)
|
|
print(f"Original template downloaded: {filename} ({len(response.content)} bytes)")
|
|
return filename
|
|
else:
|
|
print(f"Download failed: HTTP {response.status_code}")
|
|
return None
|
|
except Exception as e:
|
|
print(f"Download error: {e}")
|
|
return None
|
|
|
|
def create_test_template():
|
|
"""创建新的测试模板"""
|
|
print("\nCreating test template...")
|
|
|
|
wb = Workbook()
|
|
ws = wb.active
|
|
ws.title = "RiskTemplate"
|
|
|
|
# 添加标题
|
|
ws['A1'] = "Risk Prompt Template - Test Version"
|
|
ws['A1'].font = Font(bold=True, size=14)
|
|
ws['A1'].fill = PatternFill(start_color="366092", end_color="366092", fill_type="solid")
|
|
|
|
# 添加表头
|
|
headers = ['Region', 'Theme', 'Permit Name', 'Risk Content', 'Legal Basis', 'Document No']
|
|
for col, header in enumerate(headers, 1):
|
|
cell = ws.cell(row=3, column=col, value=header)
|
|
cell.font = Font(bold=True)
|
|
cell.fill = PatternFill(start_color="D9E1F2", end_color="D9E1F2", fill_type="solid")
|
|
|
|
# 添加测试数据
|
|
test_data = [
|
|
['City-level', 'Catering', 'Food License', 'No license risk', 'Food Safety Law', 'DOC-2024-001'],
|
|
['Chancheng', 'Accommodation', 'Special Industry License', 'Unlicensed operation', 'Special Industry Law', 'DOC-2024-002'],
|
|
['Shunde', 'Entertainment', 'Entertainment License', 'No license risk', 'Entertainment Reg', 'DOC-2024-003'],
|
|
]
|
|
|
|
for row, data in enumerate(test_data, 4):
|
|
for col, value in enumerate(data, 1):
|
|
ws.cell(row=row, column=col, value=value)
|
|
|
|
# 保存文件
|
|
filename = "RiskTemplate_Test.xlsx"
|
|
wb.save(filename)
|
|
print(f"Test template created: {filename}")
|
|
return filename
|
|
|
|
def check_flask_status():
|
|
"""检查Flask应用状态"""
|
|
try:
|
|
response = requests.get(BASE_URL, timeout=5)
|
|
print(f"Flask app is running: {BASE_URL}")
|
|
return True
|
|
except Exception as e:
|
|
print(f"Cannot connect to Flask app: {e}")
|
|
print("Please ensure Flask is running: python app.py")
|
|
return False
|
|
|
|
def main():
|
|
print("=" * 60)
|
|
print("Template Management Test")
|
|
print("=" * 60)
|
|
|
|
# 检查Flask应用状态
|
|
if not check_flask_status():
|
|
return
|
|
|
|
# 第一步:下载原始模板
|
|
original_template = download_template()
|
|
if not original_template:
|
|
print("Cannot download original template, but continuing test...")
|
|
|
|
# 第二步:创建测试模板
|
|
test_template = create_test_template()
|
|
|
|
print("\n" + "=" * 60)
|
|
print("Manual Testing Steps")
|
|
print("=" * 60)
|
|
print("\nPlease follow these steps to test template management:")
|
|
print("\n1. Open browser and visit admin console:")
|
|
print(f" {BASE_URL}/static/super_admin.html")
|
|
print("\n2. Login if required")
|
|
print("\n3. Click 'Template Management' tab")
|
|
print("\n4. Check current template info")
|
|
print("\n5. Click 'Download Current Template' button")
|
|
print("\n6. Click 'Choose File' and select test template:")
|
|
print(f" {test_template}")
|
|
print("\n7. Click 'Override Template' button to upload")
|
|
print("\n8. Verify success message and updated metadata")
|
|
print("\n9. Download template again to verify content")
|
|
print("\n10. Upload original template to restore:")
|
|
print(f" {original_template if original_template else 'data/template/风险提示表 模板.xlsx'}")
|
|
print("\n" + "=" * 60)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|