test_real_template.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/usr/bin/env python
  2. """测试真实模板预览"""
  3. import sys
  4. import json
  5. from pathlib import Path
  6. sys.path.insert(0, str(Path(__file__).parent.parent / "backend"))
  7. from app.services.renderer import renderer
  8. from app.services.template_store import load_store
  9. def test_real_template():
  10. base_dir = Path(__file__).parent.parent / "backend"
  11. store = load_store(base_dir)
  12. # 获取 X11 洗衣机通用模板
  13. templates = store.list_templates(machine_model="x11", device_type="wash", template_type="common")
  14. if not templates:
  15. print("❌ 未找到 X11 洗涤 common 模板")
  16. return
  17. tpl = templates[0]
  18. print(f"测试模板: {tpl.name}")
  19. print(f"模板ID: {tpl.id}")
  20. print(f"变量数: {len(tpl.input_variables)}")
  21. print(f"\n{'='*60}")
  22. # 准备参数
  23. params = {
  24. 'program_id': '15',
  25. 'program_name': '速洗',
  26. 'rerank_reason': 'PIN_CONSECUTIVE',
  27. 'feature_name': '每周这个时间都喜欢用',
  28. 'changed_params': {'setTemp': '40', 'speed': '10', 'spinTime': '2'},
  29. }
  30. try:
  31. result = renderer.render_from_record(tpl, params)
  32. print(f"✅ 渲染成功")
  33. print(f"\n生成结果 ({len(result)}字):\n{result[:300]}...")
  34. # 也测试 preview
  35. preview_result = renderer.preview(type('obj', (object,), {
  36. 'template_body': tpl.template_body,
  37. 'parameters': {}
  38. })())
  39. print(f"\n{'='*60}")
  40. print(f"预览结果 ({len(preview_result)}字):\n{preview_result[:300]}...")
  41. except Exception as e:
  42. print(f"❌ 渲染失败: {e}")
  43. import traceback
  44. traceback.print_exc()
  45. if __name__ == "__main__":
  46. test_real_template()