feat: track media catalog coverage

This commit is contained in:
ik
2026-09-13 08:14:56 +07:00
parent 674bc5627f
commit 7e464ef598
7 changed files with 65 additions and 4 deletions
+16 -1
View File
@@ -5,7 +5,7 @@ import io
import pytest
from PIL import Image
from rf4_research.media_assets import audit_media_catalog, extract_media_candidates, inspect_image, merge_manifest, review_asset, store_asset
from rf4_research.media_assets import audit_media_catalog, extract_media_candidates, inspect_image, media_coverage, merge_manifest, review_asset, store_asset
def test_extracts_and_classifies_unique_https_media() -> None:
@@ -94,3 +94,18 @@ def test_catalog_audit_detects_tampering_and_orphans(tmp_path: Path) -> None:
report = audit_media_catalog(tmp_path)
assert any("SHA-256 mismatch" in issue for issue in report["issues"])
assert "files/orphan.png" in report["orphaned_files"]
def test_media_coverage_keeps_unknown_tackle_total_honest(tmp_path: Path) -> None:
(tmp_path / "manifest.json").write_text(
'{"assets":[{"entity_type":"fish","status":"approved","entity_key":"ruffe"},'
'{"entity_type":"fish","status":"queued"},{"entity_type":"tackle","status":"queued"}]}',
encoding="utf-8",
)
(tmp_path / "catalog-baseline.json").write_text(
'{"verified_at":"2026-09-12","entities":{"fish":{"count":2},"tackle":{"count":null}}}',
encoding="utf-8",
)
report = media_coverage(tmp_path)["entities"]
assert report["fish"] == {"expected": 2, "candidates": 2, "approved": 1, "candidate_gap": 0, "approved_gap": 1}
assert report["tackle"]["candidate_gap"] is None