42 lines
1.6 KiB
Python
42 lines
1.6 KiB
Python
"""分析提示构建函数测试。"""
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
sys.path.insert(0, str(Path(__file__).parent.parent / "src"))
|
|
|
|
from prompt import build_analysis_prompt
|
|
|
|
|
|
class TestBuildAnalysisPrompt:
|
|
"""测试分析提示构建函数。"""
|
|
|
|
def test_basic_prompt(self) -> None:
|
|
"""测试基础提示词包含核心结构。"""
|
|
prompt = build_analysis_prompt(purpose="", index="")
|
|
assert "专业研究分析师" in prompt
|
|
assert "关键实体" in prompt
|
|
|
|
def test_with_purpose(self) -> None:
|
|
"""测试传入目的时,提示词包含 Wiki 目的部分。"""
|
|
prompt = build_analysis_prompt(purpose="测试目的", index="")
|
|
assert "Wiki 目的" in prompt
|
|
assert "测试目的" in prompt
|
|
|
|
def test_with_index(self) -> None:
|
|
"""测试传入索引时,提示词包含 Wiki 索引部分。"""
|
|
prompt = build_analysis_prompt(purpose="", index="测试索引")
|
|
assert "当前 Wiki 索引" in prompt
|
|
assert "测试索引" in prompt
|
|
|
|
def test_empty_content(self) -> None:
|
|
"""测试空内容时,可选部分不出现在提示词中。"""
|
|
prompt = build_analysis_prompt(purpose="", index="")
|
|
assert "Wiki 目的" not in prompt
|
|
assert "当前 Wiki 索引" not in prompt
|
|
|
|
def test_language_from_config(self) -> None:
|
|
"""测试语言设置从配置文件读取。"""
|
|
prompt = build_analysis_prompt(purpose="", index="", configured_language=None)
|
|
assert "使用" in prompt
|
|
assert "语言输出分析报告" in prompt |