diff --git a/tests/test_wahlprogramme.py b/tests/test_wahlprogramme.py index b6e35a2..cfd7d87 100644 --- a/tests/test_wahlprogramme.py +++ b/tests/test_wahlprogramme.py @@ -107,13 +107,21 @@ class TestEmbeddingsRegistryConsistency: def test_every_wahlprogramm_has_embeddings_entry(self): from app.embeddings import PROGRAMME - # Build expected programm_id from filename: "cdu-mv-2021.pdf" → "cdu-mv-2021" + # Match WAHLPROGRAMME-Eintrag → PROGRAMME-Eintrag entweder ueber den + # file-stem (Standard: "cdu-mv-2021" matcht "cdu-mv-2021") ODER ueber + # den `pdf`-Wert in PROGRAMME (BUND-Grundsatzprogramme nutzen kuerzere + # PROGRAMME-Keys wie "cdu-grundsatz" obwohl die Datei + # "cdu-grundsatzprogramm.pdf" heisst). + pdf_to_pid = {p.get("pdf"): pid for pid, p in PROGRAMME.items() if p.get("pdf")} missing = [] for bl, parteien in WAHLPROGRAMME.items(): for partei, info in parteien.items(): - pid = info["file"].rsplit(".", 1)[0] - if pid not in PROGRAMME: - missing.append(f"{bl}/{partei} → {pid}") + file_stem = info["file"].rsplit(".", 1)[0] + if file_stem in PROGRAMME: + continue + if info["file"] in pdf_to_pid: + continue + missing.append(f"{bl}/{partei} → {info['file']}") assert not missing, ( "WAHLPROGRAMME entries missing in embeddings.PROGRAMME:\n " + "\n ".join(missing)