build(#134): Coverage-Schwelle 45% → 50% nach Test-Backfill-Welle

Aktuelle Total-Coverage 53.4% (vorher 46.2%). Mit der Phase-2-Welle:
- 787 Tests (von 580) — +207 Tests
- Coverage-Sprung +7 Punkte
- 11 Module auf >=99% gebracht (mail, og_card, redline_utils, drucksache_typen,
  wahlperioden, wahlprogramme, abonnement_repository, bewertung_repository,
  monitoring, clustering, ingest_votes)
- 3 Module auf >=85% (auth, protokoll_parsers/nrw, qwen_bewerter)
- Verbleibend integration-territory: main.py (Endpoints), parlamente.py
  (Live-Adapters), queue.py worker-Loop, report.py WeasyPrint,
  embeddings.py OpenAI-Calls
This commit is contained in:
Dotty Dotter 2026-04-28 11:14:09 +02:00
parent 16ecd31e50
commit 1769c9f349

View File

@ -11,21 +11,20 @@ omit =
# Faustregel ADR 0007: keine 100%-Jagd, aber kritische Pfade abdecken. # Faustregel ADR 0007: keine 100%-Jagd, aber kritische Pfade abdecken.
# show_missing-Flag macht Luecken im CI-Output sofort sichtbar. # show_missing-Flag macht Luecken im CI-Output sofort sichtbar.
# #
# fail_under=45 ist die aktuelle Baseline (Stand 2026-04-28), nicht das # fail_under=50 ist die aktuelle Baseline (Stand 2026-04-28). Verbleibende
# Ziel. Die niedrige Total-Coverage kommt aus drei Bereichen, die mit # unabgedeckte Bereiche brauchen integration-Setup statt Unit-Tests:
# Unit-Tests schwer abzudecken sind und stattdessen via integration/e2e
# laufen sollten:
# - app/main.py (FastAPI-Endpoints, ~900 LOC) — TestClient-Smoke-Tests # - app/main.py (FastAPI-Endpoints, ~900 LOC) — TestClient-Smoke-Tests
# sind lokal geskippt mangels App-Imports; laufen in der Docker-Suite. # sind lokal geskippt mangels voller Deps; laufen in der Docker-Suite.
# - app/parlamente.py (16 Adapter, ~3400 LOC) — Live-HTTP gegen Landtage, # - app/parlamente.py (16 Adapter, ~3400 LOC) — Live-HTTP gegen Landtage,
# tests/integration/ deckt das ab. # tests/integration/ deckt das ab.
# - app/queue.py, app/report.py — Async-Worker und PDF-Renderer, eigene # - app/queue.py _worker (async-Loop, while True, hart zu testen).
# Test-Runden noch ausstehend. # - app/report.py WeasyPrint-PDF-Render-Pfade.
# Schwelle hochsetzen, sobald genannte Bereiche eigene Tests haben. # - app/embeddings.py OpenAI/DashScope-Calls.
# Schwelle hochsetzen, wenn integration-Suite lokal lauffaehig wird.
show_missing = true show_missing = true
skip_covered = false skip_covered = false
precision = 1 precision = 1
fail_under = 45 fail_under = 50
# Zeilen, die nicht gezaehlt werden sollen — typische Boilerplate ohne # Zeilen, die nicht gezaehlt werden sollen — typische Boilerplate ohne
# eigentliche Testbarkeit. # eigentliche Testbarkeit.