Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
41 lines
1.6 KiB
Python
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)
|