56 lines
2.3 KiB
Python
56 lines
2.3 KiB
Python
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
from app.gateway.wiki_generation_config import compile_wiki_instructions
|
|
|
|
|
|
def test_compile_wiki_instructions_keeps_raw_text_and_adds_optional_guidance() -> None:
|
|
compiled = compile_wiki_instructions(
|
|
content_instructions="保持正式表达",
|
|
extraction_instructions="提取时间和主体",
|
|
focus_instructions="重点关注适用对象与截止日期",
|
|
directory_paths=[
|
|
["政策法规"],
|
|
["政策法规", "国内政策"],
|
|
["政策法规", "国内政策", "申报流程"],
|
|
],
|
|
)
|
|
|
|
assert compiled.content_instructions.startswith("保持正式表达")
|
|
assert "【用户重点要求】\n重点关注适用对象与截止日期" in compiled.content_instructions
|
|
assert "【参考目录层级】" in compiled.content_instructions
|
|
assert " - 申报流程" in compiled.content_instructions
|
|
assert "不是必须逐项套用的目录模板" in compiled.content_instructions
|
|
assert "自行合并、拆分、改名或补充目录" in compiled.content_instructions
|
|
assert "唯一允许使用的目录白名单" not in compiled.content_instructions
|
|
assert compiled.extraction_instructions.startswith("提取时间和主体")
|
|
assert "重点关注适用对象与截止日期" in compiled.extraction_instructions
|
|
assert compiled.directory_prompt_coverage == "full"
|
|
assert compiled.directory_prompt_covered_nodes == 3
|
|
assert compiled.directory_prompt_total_nodes == 3
|
|
|
|
|
|
def test_compile_wiki_instructions_reports_partial_directory_coverage() -> None:
|
|
compiled = compile_wiki_instructions(
|
|
content_instructions="",
|
|
extraction_instructions="",
|
|
focus_instructions="",
|
|
directory_paths=[["甲"], ["乙"], ["丙"]],
|
|
max_length=70,
|
|
)
|
|
|
|
assert compiled.directory_prompt_coverage in {"none", "partial"}
|
|
assert compiled.directory_prompt_covered_nodes < 3
|
|
assert compiled.directory_prompt_total_nodes == 3
|
|
|
|
|
|
def test_compile_wiki_instructions_rejects_untruncated_user_guidance() -> None:
|
|
with pytest.raises(ValueError, match="合并后不能超过"):
|
|
compile_wiki_instructions(
|
|
content_instructions="甲" * 3995,
|
|
extraction_instructions="",
|
|
focus_instructions="必须突出期限",
|
|
directory_paths=[],
|
|
)
|