feat: audit catalog media coverage
This commit is contained in:
@@ -25,11 +25,21 @@ def test_does_not_mistake_seafishing_screenshot_for_fish_entity() -> None:
|
||||
assert items[0].entity_type == "reference"
|
||||
|
||||
|
||||
def test_gallery_page_provenance_classifies_generic_asset_urls() -> None:
|
||||
fish = extract_media_candidates('<img src="/uploads/gallery/123.jpg" alt="Hecht">', source_page="https://rf4game.de/media/fische/")
|
||||
water = extract_media_candidates('<img src="/uploads/gallery/456.jpg" alt="Kuori">', source_page="https://rf4game.de/media/levels/")
|
||||
assert fish[0].entity_type == "fish"
|
||||
assert water[0].entity_type == "waterbody"
|
||||
chrome = extract_media_candidates('<img src="/wp-content/themes/rf4/img/banner_de.png">', source_page="https://rf4game.de/media/fische/")
|
||||
assert chrome[0].entity_type == "reference"
|
||||
|
||||
|
||||
def test_manifest_merges_and_binary_store_is_content_addressed(tmp_path: Path) -> None:
|
||||
item = extract_media_candidates('<img src="/bait/worm.png" alt="Bait worm">', source_page="https://example.test")[0]
|
||||
first = merge_manifest(tmp_path / "manifest.json", [item])
|
||||
second = merge_manifest(tmp_path / "manifest.json", [item])
|
||||
assert len(first["assets"]) == len(second["assets"]) == 1
|
||||
assert second["assets"][0]["source_pages"] == ["https://example.test"]
|
||||
image = io.BytesIO()
|
||||
Image.new("RGB", (3, 2), "green").save(image, format="PNG")
|
||||
digest, relative, width, height, mime = store_asset(tmp_path, image.getvalue(), content_type="image/png", source_url=item.asset_url)
|
||||
|
||||
Reference in New Issue
Block a user