bidmaster-cli/tests/unit/test_validation.py
sladro c1292fcacc feat: add validation and toc pipeline upgrades
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-11-19 10:11:21 +08:00

41 lines
1.6 KiB
Python

from bidmaster.utils.validation import ContentValidationError, ContentValidator
def test_content_validator_rejects_cross_chapter_phrase() -> None:
validator = ContentValidator()
chapter = {"id": "chapter_1", "title": "服务方案"}
content = (
"经认真研读招标文件要求,结合我司实际情况,现就商务和技术方面存在的偏差说明如下:\n"
"商务条款响应情况\n我司完全响应……"
)
try:
validator.validate(chapter, content)
except ContentValidationError as exc:
assert "跨章节模板" in str(exc)
else:
raise AssertionError("内容校验应当失败")
def test_content_validator_accepts_normal_content() -> None:
validator = ContentValidator()
chapter = {"id": "chapter_2", "title": "技术路线"}
content = (
"我们以矿山智慧化平台为核心,构建“实时感知—风险预警—指挥调度”闭环。\n"
"- 通过多源感知网络实现危险场景秒级采集;\n"
"- 以知识图谱关联隐患并生成操作工序清单。"
)
validator.validate(chapter, content)
def test_content_validator_allows_legitimate_intro() -> None:
validator = ContentValidator()
chapter = {"id": "chapter_a", "title": "商务和技术偏差表"}
content = (
"在本次投标过程中,我们对招标文件进行了全面分析,并结合我司情况编制偏差说明。\n"
"我们将在响应表中逐条列出商务及技术条款的差异与说明。"
)
validator.validate(chapter, content)