luxury-authenticator / tests /test_layer4.py
Princess24's picture
build p4
d6a19a7
Raw
History Blame Contribute Delete
1.29 kB
import csv
from pathlib import Path
import imagehash
import pytest
from PIL import Image
import pipeline.layer4_provenance as l4
def make_img(color):
return Image.new("RGB", (64, 64), color=color)
def test_layer4_flagged_and_clean(tmp_path, monkeypatch):
# Build a tiny temp CSV with one known pHash.
flagged = make_img((255, 0, 0))
flagged_hash = str(imagehash.colorhash(flagged))
csv_path = tmp_path / "scam_database.csv"
with open(csv_path, "w", newline="", encoding="utf-8") as f:
w = csv.DictWriter(
f,
fieldnames=["phash_value", "platform", "scam_type", "reported_date", "note"],
)
w.writeheader()
w.writerow(
{
"phash_value": flagged_hash,
"platform": "Test",
"scam_type": "counterfeit",
"reported_date": "2026-01-01",
"note": "unit",
}
)
monkeypatch.setattr(l4, "CSV_PATH", csv_path)
r1 = l4.check_provenance(flagged)
assert r1["provenance_status"] == "Flagged"
assert r1["match_source"] == "Test"
clean = make_img((0, 255, 0))
r2 = l4.check_provenance(clean)
assert r2["provenance_status"] == "Clean"
assert "demo database" in r2["note"].lower()