[run] source = app omit = # Hilfs-Skripte und Migrations-Tools — nicht produktiver Code app/reindex_embeddings.py app/sync_abgeordnetenwatch.py # Generated / Auto-Discovery app/__init__.py [report] # Faustregel ADR 0007: keine 100%-Jagd, aber kritische Pfade abdecken. # show_missing-Flag macht Luecken im CI-Output sofort sichtbar. # # fail_under=45 ist die aktuelle Baseline (Stand 2026-04-28), nicht das # Ziel. Die niedrige Total-Coverage kommt aus drei Bereichen, die mit # Unit-Tests schwer abzudecken sind und stattdessen via integration/e2e # laufen sollten: # - app/main.py (FastAPI-Endpoints, ~900 LOC) — TestClient-Smoke-Tests # sind lokal geskippt mangels App-Imports; laufen in der Docker-Suite. # - app/parlamente.py (16 Adapter, ~3400 LOC) — Live-HTTP gegen Landtage, # tests/integration/ deckt das ab. # - app/queue.py, app/report.py — Async-Worker und PDF-Renderer, eigene # Test-Runden noch ausstehend. # Schwelle hochsetzen, sobald genannte Bereiche eigene Tests haben. show_missing = true skip_covered = false precision = 1 fail_under = 45 # Zeilen, die nicht gezaehlt werden sollen — typische Boilerplate ohne # eigentliche Testbarkeit. exclude_lines = pragma: no cover def __repr__ raise NotImplementedError if __name__ == .__main__.: if TYPE_CHECKING: \.\.\. [html] directory = htmlcov