test_step2_project_fields.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import unittest
  2. from step2_analysis.analyzer import complete_project_fields
  3. class Step2ProjectFieldTests(unittest.TestCase):
  4. def test_markdown_summary_is_normalized_to_fillable_project_fields(self):
  5. source = """## 项目要求
  6. ### 服务范围与内容
  7. 服务范围包括:
  8. - 建筑物管理
  9. - 设施设备管理
  10. - 保洁服务
  11. ### 服务标准
  12. - 按采购需求规定的质量标准执行
  13. - 接受采购人日常考核
  14. - **服务期限**:自合同签订之日起三年,分三个年度签订合同
  15. """
  16. fields = complete_project_fields({}, source)
  17. self.assertEqual(
  18. fields["服务内容"],
  19. "建筑物管理、设施设备管理、保洁服务",
  20. )
  21. self.assertIn("质量标准", fields["服务要求"])
  22. self.assertIn("日常考核", fields["服务要求"])
  23. self.assertEqual(
  24. fields["服务期限"],
  25. "自合同签订之日起三年,分三个年度签订合同",
  26. )
  27. def test_llm_extracted_values_take_precedence_over_summary_fallback(self):
  28. fields = complete_project_fields(
  29. {
  30. "服务内容": "经核验的服务内容",
  31. "服务要求": "经核验的服务要求",
  32. "服务期限": "经核验的服务期限",
  33. },
  34. "服务期限:摘要中的旧值",
  35. )
  36. self.assertEqual(fields["服务内容"], "经核验的服务内容")
  37. self.assertEqual(fields["服务要求"], "经核验的服务要求")
  38. self.assertEqual(fields["服务期限"], "经核验的服务期限")
  39. if __name__ == "__main__":
  40. unittest.main()