2026-04-28 02:05:39 +02:00
|
|
|
[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]
|
2026-04-28 08:07:53 +02:00
|
|
|
# Faustregel ADR 0007: keine 100%-Jagd, aber kritische Pfade abdecken.
|
|
|
|
|
# show_missing-Flag macht Luecken im CI-Output sofort sichtbar.
|
|
|
|
|
#
|
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
2026-04-28 11:14:09 +02:00
|
|
|
# fail_under=50 ist die aktuelle Baseline (Stand 2026-04-28). Verbleibende
|
|
|
|
|
# unabgedeckte Bereiche brauchen integration-Setup statt Unit-Tests:
|
2026-04-28 08:07:53 +02:00
|
|
|
# - app/main.py (FastAPI-Endpoints, ~900 LOC) — TestClient-Smoke-Tests
|
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
2026-04-28 11:14:09 +02:00
|
|
|
# sind lokal geskippt mangels voller Deps; laufen in der Docker-Suite.
|
2026-04-28 08:07:53 +02:00
|
|
|
# - app/parlamente.py (16 Adapter, ~3400 LOC) — Live-HTTP gegen Landtage,
|
|
|
|
|
# tests/integration/ deckt das ab.
|
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
2026-04-28 11:14:09 +02:00
|
|
|
# - app/queue.py _worker (async-Loop, while True, hart zu testen).
|
|
|
|
|
# - app/report.py WeasyPrint-PDF-Render-Pfade.
|
|
|
|
|
# - app/embeddings.py OpenAI/DashScope-Calls.
|
|
|
|
|
# Schwelle hochsetzen, wenn integration-Suite lokal lauffaehig wird.
|
2026-04-28 02:05:39 +02:00
|
|
|
show_missing = true
|
|
|
|
|
skip_covered = false
|
|
|
|
|
precision = 1
|
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
2026-04-28 11:14:09 +02:00
|
|
|
fail_under = 50
|
2026-04-28 02:05:39 +02:00
|
|
|
|
|
|
|
|
# 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
|