"""scripts/run_trial.py 驱动测试(fake 模式,离线确定性,无需 API key)。""" import json from pathlib import Path from scripts.run_trial import main def test_run_trial_fake_produces_docx_and_report(tmp_path): out = tmp_path / "output.docx" report = tmp_path / "impact-report.json" result = main([ "--fake", "--output", str(out), "--impact-report", str(report), ]) # 章数:真实概要设计书模板按 §6.5 归并后为 7 个 H1 章 #(H2/H3 子节归入父章,不再独立成章被丢弃) assert result["chapters"] == 7 # 影响调查 summary 与 MVP 基线一致 assert result["summary"] == { "total": 16, "new": 5, "modified": 8, "deleted": 3, "unchanged": 50, "warnings": 0, } assert out.is_file() assert report.is_file() data = json.loads(report.read_text(encoding="utf-8")) assert data["summary"] == result["summary"] def test_run_trial_fake_docx_contains_injected_text(tmp_path): out = tmp_path / "out.docx" report = tmp_path / "ir.json" main(["--fake", "--output", str(out), "--impact-report", str(report)]) from docx import Document joined = "\n".join(p.text for p in Document(str(out)).paragraphs) assert "自动生成内容" in joined