Kleine pytest-Suite für Adapter-Parser + Prompt-Formatter #91
Labels
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: tobias/gwoe-antragspruefer#91
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Motivation
Die Codebase ist seit ein paar Monaten WIP, hat keine Tests und in der Adapter-Session 2026-04-08 sind drei Bugs aufgetaucht, die durch fixture-basierte Unit-Tests sofort gefangen worden wären:
doctype→doctype_fullNameError im PortalaAdapter card-parser (Hot-Fix1cb030a). Wurde erst auf dem prod-server bemerkt und als verwaister Live-Edit wieder gefunden, als ein späterer Pull mit dem Server-Stand kollidierte.format_quotes_for_promptohne Programm-Quelle — der LLM-Halluzinations-Bug (1b5fd96+bc7f4a6). Hätte mit einem Snapshot-Test gegen einen Beispiel-Chunk-Set sofort auffallen können.Scope (klein gehalten, hoher ROI)
tests/test_parlamente.py— Fixture-basierte Tests für_hit_to_drucksache,_parse_hit_list_dump,_parse_hit_list_cards,_normalize_fraktion. Fixtures als kleine Dateien untertests/fixtures/(1-2 echte HAR-Snippets pro Adapter, anonymisiert wenn nötig).tests/test_embeddings.py— Snapshot-Test fürformat_quotes_for_promptmit fake chunks; Test dass_chunk_source_labelimmer Programm-Name + Seite enthält.tests/test_analyzer.py— JSON-Parser-Edge-Cases (```json-Stripping, leading/trailing whitespace).tests/test_wahlprogramme.py—get_wahlprogrammfür jede der 22 indexierten Programme,parteien_mit_wahlprogrammpro Bundesland, Datei-Existenz-Check (info['file']muss instatic/referenzen/liegen).Was NICHT in dieser Suite ist
vcrpy/pytest-recordingAkzeptanzkriterien
pytestläuft lokal und in CI (falls vorhanden) durchrequirements-dev.txtmitpytest,pytest-asynciopytestals Befehl