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.
|
|
|
|
|
#
|
|
|
|
|
# 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.
|
2026-04-28 02:05:39 +02:00
|
|
|
show_missing = true
|
|
|
|
|
skip_covered = false
|
|
|
|
|
precision = 1
|
2026-04-28 08:07:53 +02:00
|
|
|
fail_under = 45
|
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
|