Initial commit: AI 知识库文档智能分块工具
This commit is contained in:
84
tests/test_prompts.py
Normal file
84
tests/test_prompts.py
Normal file
@@ -0,0 +1,84 @@
|
||||
"""提示词模块单元测试。"""
|
||||
|
||||
from prompts import (
|
||||
SYSTEM_PROMPT_TEMPLATE,
|
||||
USER_PROMPT_TEMPLATE,
|
||||
get_system_prompt,
|
||||
get_user_prompt,
|
||||
)
|
||||
|
||||
|
||||
class TestSystemPromptTemplate:
|
||||
"""系统提示词模板测试。"""
|
||||
|
||||
def test_contains_delimiter_placeholder(self):
|
||||
assert "{delimiter}" in SYSTEM_PROMPT_TEMPLATE
|
||||
|
||||
def test_contains_semantic_completeness_rule(self):
|
||||
assert "语义完整性" in SYSTEM_PROMPT_TEMPLATE
|
||||
|
||||
def test_contains_self_contained_rule(self):
|
||||
assert "自包含性" in SYSTEM_PROMPT_TEMPLATE
|
||||
|
||||
def test_contains_heading_preservation_rule(self):
|
||||
assert "标题层级保留" in SYSTEM_PROMPT_TEMPLATE
|
||||
|
||||
def test_contains_table_integrity_rule(self):
|
||||
assert "表格完整性" in SYSTEM_PROMPT_TEMPLATE
|
||||
|
||||
def test_contains_granularity_rule(self):
|
||||
assert "合理粒度" in SYSTEM_PROMPT_TEMPLATE
|
||||
|
||||
|
||||
class TestUserPromptTemplate:
|
||||
"""用户提示词模板测试。"""
|
||||
|
||||
def test_contains_text_content_placeholder(self):
|
||||
assert "{text_content}" in USER_PROMPT_TEMPLATE
|
||||
|
||||
|
||||
class TestGetSystemPrompt:
|
||||
"""get_system_prompt 函数测试。"""
|
||||
|
||||
def test_default_delimiter(self):
|
||||
result = get_system_prompt()
|
||||
assert "---" in result
|
||||
assert "{delimiter}" not in result
|
||||
|
||||
def test_custom_delimiter(self):
|
||||
result = get_system_prompt("===SPLIT===")
|
||||
assert "===SPLIT===" in result
|
||||
assert "{delimiter}" not in result
|
||||
|
||||
def test_delimiter_appears_in_format_example(self):
|
||||
result = get_system_prompt("***")
|
||||
# 分隔符应出现在格式说明和示例中
|
||||
assert "`***`" in result
|
||||
|
||||
def test_empty_delimiter(self):
|
||||
result = get_system_prompt("")
|
||||
assert "{delimiter}" not in result
|
||||
|
||||
|
||||
class TestGetUserPrompt:
|
||||
"""get_user_prompt 函数测试。"""
|
||||
|
||||
def test_text_content_substitution(self):
|
||||
result = get_user_prompt("这是一段测试文本。")
|
||||
assert "这是一段测试文本。" in result
|
||||
assert "{text_content}" not in result
|
||||
|
||||
def test_preserves_surrounding_markers(self):
|
||||
result = get_user_prompt("内容")
|
||||
assert "---开始---" in result
|
||||
assert "---结束---" in result
|
||||
|
||||
def test_multiline_content(self):
|
||||
content = "第一行\n第二行\n第三行"
|
||||
result = get_user_prompt(content)
|
||||
assert content in result
|
||||
|
||||
def test_empty_content(self):
|
||||
result = get_user_prompt("")
|
||||
assert "{text_content}" not in result
|
||||
assert "---开始---" in result
|
||||
Reference in New Issue
Block a user