Files
ai-daily-report/tests/test_audit.py

43 lines
1.6 KiB
Python

import json
import tempfile
import unittest
from pathlib import Path
from ai_daily_report.audit import render_markdown, summarize_reports
class AuditTests(unittest.TestCase):
def test_summarizes_weekly_metrics(self):
with tempfile.TemporaryDirectory() as tmp:
run_dir = Path(tmp) / "2026-06-10"
run_dir.mkdir()
(run_dir / "run_report.json").write_text(
json.dumps(
{
"quality_gate": {
"source_failures": [{"source": "橘鸦AI早报"}],
"warnings": ["enabled_source_failed:橘鸦AI早报:error"],
"blocking_errors": [],
},
"stage2_8": {"candidate_group_count": 6},
"stage4": {"fallback_count": 2, "output_count": 20},
"stage5": {"output_count": 20},
"stage8": {"status": "ok", "slug": "ai-2026-06-10"},
}
),
encoding="utf-8",
)
summary = summarize_reports(Path(tmp), limit_days=7)
markdown = render_markdown(summary)
self.assertEqual(summary["run_count"], 1)
self.assertEqual(summary["totals"]["source_failures"], 1)
self.assertEqual(summary["totals"]["duplicate_candidates"], 6)
self.assertEqual(summary["totals"]["fallback_ratio"], 0.1)
self.assertIn("AI日报每周自动审计报告", markdown)
if __name__ == "__main__":
unittest.main()