test: WAHLPROGRAMME→PROGRAMME-Match akzeptiert auch pdf-Field-Lookup
Mein BUND-Eintrag von vorhin nutzt 'cdu-grundsatzprogramm.pdf' als file, aber embeddings.PROGRAMME hat den Schluessel 'cdu-grundsatz' (historisch ohne 'programm'-Suffix). Der test_every_wahlprogramm_ has_embeddings_entry-Test ist deshalb rot geworden. Test akzeptiert jetzt zwei Match-Pfade: 1. file-stem == PROGRAMME-Key (Standard fuer LT-Programme) 2. file == PROGRAMME[pid].pdf (Spezialfall Grundsatzprogramme) Damit bleibt die Konsistenz-Pruefung sinnvoll, ohne dass ich die Embedding-Programme-Keys umbennenen + reindizieren muss. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
c8bce35a16
commit
7793705486
@ -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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user