feat: publish approved RF4 media catalog
CI / backend-and-migrations (push) Canceled after 0s
CI / astro-build (push) Canceled after 0s
CI / dependency-audit (push) Canceled after 0s
CI / compose-e2e (push) Canceled after 0s

This commit is contained in:
ik
2026-09-14 22:20:46 +07:00
parent 6146ea9eb0
commit b47a6cc366
25 changed files with 2487 additions and 893 deletions
+14 -1
View File
@@ -6,7 +6,7 @@ import io
import pytest
from PIL import Image
from rf4_research.media_assets import audit_media_catalog, extract_media_candidates, inspect_image, media_coverage, merge_manifest, reconcile_queued_duplicates, review_asset, store_asset
from rf4_research.media_assets import approve_stored_assets, audit_media_catalog, extract_media_candidates, inspect_image, media_coverage, merge_manifest, reconcile_queued_duplicates, review_asset, store_asset
def test_extracts_and_classifies_unique_https_media() -> None:
@@ -166,3 +166,16 @@ def test_reconcile_queue_preserves_source_but_skips_normalized_duplicate(tmp_pat
assert assets[1]["status"] == "duplicate"
assert assets[1]["duplicate_of"] == "https://a/fish.png"
assert assets[2]["status"] == "queued"
def test_bulk_approval_only_publishes_stored_assets(tmp_path: Path) -> None:
path = tmp_path / "manifest.json"
path.write_text(json.dumps({"assets": [
{"entity_type": "fish", "external_id": "pike", "status": "stored", "asset_url": "https://a/pike.webp", "sha256": "a" * 64},
{"entity_type": "fish", "status": "queued", "asset_url": "https://a/perch.webp"},
]}), encoding="utf-8")
assert approve_stored_assets(path, note="owner approved") == {"approved": 1}
assets = json.loads(path.read_text(encoding="utf-8"))["assets"]
assert assets[0]["entity_key"] == "fish:pike"
assert assets[0]["review_note"] == "owner approved"
assert assets[1]["status"] == "queued"