Files
gaokao-volunteer-system/data/crowd_db/tests/test_quality_summary.py

37 lines
1.1 KiB
Python
Raw Normal View History

from __future__ import annotations
from data.crowd_db.loader import CrowdDBLoader
def test_build_quality_summary_returns_expected_shape():
from data.crowd_db.quality_summary import build_quality_summary
summary = build_quality_summary(CrowdDBLoader(warn_low_confidence=False))
assert summary["total_provinces"] == 31
assert summary["by_quality_level"]
assert set(summary["by_quality_level"]).issuperset({"high", "usable", "skeleton"})
assert len(summary["provinces"]) == 31
first = summary["provinces"][0]
assert set(first).issuperset({
"province",
"confidence",
"quality_level",
"quality_label",
"data_year",
"source_type",
})
hunan = next(p for p in summary["provinces"] if p["province"] == "湖南")
assert hunan["quality_level"] == "high"
def test_quality_summary_cli_human_output(capsys):
from data.crowd_db.quality_summary import main
code = main(["--human"])
captured = capsys.readouterr()
assert code == 0
assert "province_count: 31" in captured.out
assert "quality_counts:" in captured.out
assert "湖南" in captured.out