import unittest from step2_analysis.analyzer import complete_project_fields class Step2ProjectFieldTests(unittest.TestCase): def test_markdown_summary_is_normalized_to_fillable_project_fields(self): source = """## 项目要求 ### 服务范围与内容 服务范围包括: - 建筑物管理 - 设施设备管理 - 保洁服务 ### 服务标准 - 按采购需求规定的质量标准执行 - 接受采购人日常考核 - **服务期限**:自合同签订之日起三年,分三个年度签订合同 """ fields = complete_project_fields({}, source) self.assertEqual( fields["服务内容"], "建筑物管理、设施设备管理、保洁服务", ) self.assertIn("质量标准", fields["服务要求"]) self.assertIn("日常考核", fields["服务要求"]) self.assertEqual( fields["服务期限"], "自合同签订之日起三年,分三个年度签订合同", ) def test_llm_extracted_values_take_precedence_over_summary_fallback(self): fields = complete_project_fields( { "服务内容": "经核验的服务内容", "服务要求": "经核验的服务要求", "服务期限": "经核验的服务期限", }, "服务期限:摘要中的旧值", ) self.assertEqual(fields["服务内容"], "经核验的服务内容") self.assertEqual(fields["服务要求"], "经核验的服务要求") self.assertEqual(fields["服务期限"], "经核验的服务期限") if __name__ == "__main__": unittest.main()