gwoe-antragspruefer/tests
Dotty Dotter b003cc1d6d feat(programme): Wahlprogramm-Geltung beginnt am Wahltag (B1+B2)
Antwort auf B1 + B2 aus der Roadmap:
- B1: Antrag VOR Regierungsbildung (z.B. NRW WP18-Antrag im Mai 2022,
  vor Vereidigung Wuest II am 29.06.2022) bekommt jetzt das passende
  Wahlprogramm zurueck — der Geltungsbeginn ist der Wahltag, nicht die
  Vereidigung.
- B2: Opposition vs. Regierung wird einheitlich behandelt. Die fruehere
  Logik "Geltung ab Regierungsbildung" war fuer Regierungsfraktionen
  intuitiv (Koalitionsvertrag wird zu Politik), fuer Opposition aber
  willkuerlich. Programme werden zur Wahl beschlossen und sind
  Wahlversprechen ab dem Tag der Wahl.

Implementation in programme._migrate_from_legacy:
- gueltig_ab = aktuelle_legislatur(bl)["wahltermin"] (Fallback auf
  altes "regierungsbildung" fuer rueckwaerts-kompatible Eintraege)
- ``wahl``-Feld auf Wahltag gesetzt
- ``wp``-Feld aus aktuelle_legislatur ergaenzt

Das ``regierungsbildung``-Feld in WAHLPROGRAMME bleibt erhalten und
versorgt den Bewertungs-Kontext-Block weiterhin mit dem Anzeige-Wert
"Regierung zur Antragszeit" (per legislaturen.regierung_zum_zeitpunkt
laeuft das primaer ueber legislaturen.REGIERUNGEN).

UI-Effekt: im Antrag-Detail liest sich z.B. ein BUND-Eintrag jetzt
"gueltig seit 2025-02-23, 60 S." (BTW-Wahltag) statt "2025-05-06"
(Vereidigung Merz I).

Tests: 115 gruen (test_programme + test_legislaturen + test_wahlprogramme
+ test_embeddings). Tests test_bund_btw_2025_in_uebergangsphase und
test_bund_btw_2025_vor_wahl neu, decken die geaenderte Geltungs-Logik
explizit ab.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 09:17:08 +02:00
..
e2e test(Phase 16): 9 E2E-Smoketests gegen gwoe-dev mit DEBUG_AUTH_TOKEN 2026-05-06 23:50:40 +02:00
integration Sub-B: NRW Sample 10/5376 — F.D.P.+CDU CO2-Minderungsprogramm 1990 2026-04-09 13:43:17 +02:00
__init__.py Add pytest suite + fix two regex bugs uncovered by it (#46) 2026-04-08 23:26:06 +02:00
conftest.py Add pytest suite + fix two regex bugs uncovered by it (#46) 2026-04-08 23:26:06 +02:00
test_abgeordnetenwatch.py test(#134): Coverage-Backfill drei Module 2026-04-28 10:50:26 +02:00
test_abonnement_repository.py test(#134): Coverage-Backfill auswertungen + Repositories 2026-04-28 10:54:28 +02:00
test_analyzer.py test(#134): analyzer Coverage 70.1% → 83.1% 2026-04-28 11:06:24 +02:00
test_antrag_repository.py test(#134): Coverage-Backfill auswertungen + Repositories 2026-04-28 10:54:28 +02:00
test_auswertungen_stimmverhalten.py feat(#168): Über-Zeit-Drift im Stimmverhalten-Tab 2026-04-29 23:03:53 +02:00
test_auswertungen.py feat(#172): Vote-Orphans-Banner + Bulk-Auto-Bewerten-Endpoint 2026-05-06 02:03:23 +02:00
test_auth.py test(#134): auth.py Coverage 47.1% → 86% 2026-04-28 11:10:08 +02:00
test_auto_rate_runs.py quality: 9 Tests fuer auto_rate_runs + ruff F401 in main.py 2026-05-06 16:58:49 +02:00
test_batch_helpers.py feat: Antrag-Detail News-Match-Box + Test-Coverage fuer aktuelle-themen 2026-05-06 02:22:22 +02:00
test_bewertung_repository.py test(#134): Coverage-Backfill auswertungen + Repositories 2026-04-28 10:54:28 +02:00
test_bug_regressions.py test: 467 -> 574 Tests (+107) — DDD, abgeordnetenwatch, monitoring, v2, Bug-Regressions 2026-04-25 20:55:57 +02:00
test_bundeslaender.py Phase J: SN EDAS-XML-Adapter (#26/#38) — Sachsen aktiv via XML-Export 2026-04-09 14:39:03 +02:00
test_clustering.py test(#134): clustering.py Coverage 82.3% → 99.3% 2026-04-28 11:02:58 +02:00
test_database.py feat(#106): plenum_vote_results-Tabelle + Repository 2026-04-28 08:01:26 +02:00
test_domain_behavior.py test: 467 -> 574 Tests (+107) — DDD, abgeordnetenwatch, monitoring, v2, Bug-Regressions 2026-04-25 20:55:57 +02:00
test_drucksache_typen.py test(#134): drucksache_typen Coverage 72.5% → 100% 2026-04-28 11:04:31 +02:00
test_embeddings_v3_v4.py test: 467 -> 574 Tests (+107) — DDD, abgeordnetenwatch, monitoring, v2, Bug-Regressions 2026-04-25 20:55:57 +02:00
test_embeddings.py chore: konsolidiere Working-Tree mit dev-Stand nach Nextcloud-Sync-Resolution 2026-05-08 00:19:41 +02:00
test_endpoints_smoke.py test: 11 weitere Smoketests fuer Stimmverhalten-Endpoints 2026-05-06 15:45:59 +02:00
test_feedback_endpoint.py feat(v2): Feedback-Widget mit Audit-Trail + Screenshot + direkter Gitea-Anbindung 2026-04-28 01:00:44 +02:00
test_icons.py fix: icon()-Macro mit ignore-missing + Coverage-Test 2026-05-06 17:35:59 +02:00
test_ingest_votes.py test(#134): Coverage-Backfill drei Module 2026-04-28 10:50:26 +02:00
test_legislaturen.py feat: Programme + Legislaturen-Registry mit historisch korrekter Geltung 2026-05-08 00:18:33 +02:00
test_llm_bewerter.py feat: Antrag-Detail News-Match-Box + Test-Coverage fuer aktuelle-themen 2026-05-06 02:22:22 +02:00
test_mail.py test(#134): mail.py Coverage 88.2% → 100% 2026-04-28 10:58:03 +02:00
test_main_validators.py Phase A: Audit-Restbefunde #57.3/4/7 (Roadmap #59) 2026-04-09 11:15:16 +02:00
test_marker.py feat: Opportunismus-Marker bei JA-Stimmen mit WP-Score < 3 2026-05-06 15:48:06 +02:00
test_monitoring.py test(#134): monitoring.py Coverage 83.2% → 99.3% 2026-04-28 11:01:19 +02:00
test_news_aggregator.py feat(#170): Aktuelle-Themen-Dashboard — News × Anträge × Pressemitteilungen 2026-05-03 12:39:36 +02:00
test_og_card.py test(#134): app/og_card.py Coverage 44% → 100% 2026-04-28 08:40:20 +02:00
test_parlamente.py fix(#142): SL HTTP 5xx als Fehler raisen statt return [] 2026-04-28 01:46:35 +02:00
test_parteien.py Phase B: Parteinamen-Mapper #55 (Roadmap #59) 2026-04-09 11:22:13 +02:00
test_pm_render.py refactor + tests: marker.py + pm_render.py mit 56 Unit-Tests 2026-05-06 15:44:12 +02:00
test_presse_generator_style.py test(#191 Phase 10.4): 10 Tests fuer presse_generator Style-Switch 2026-05-06 17:15:21 +02:00
test_presse_generator.py chore: konsolidiere Working-Tree mit dev-Stand nach Nextcloud-Sync-Resolution 2026-05-08 00:19:41 +02:00
test_programme.py feat(programme): Wahlprogramm-Geltung beginnt am Wahltag (B1+B2) 2026-05-08 09:17:08 +02:00
test_protokoll_parsers_bb.py feat(#149): BB-Parser produktiv — Brandenburger Plenarprotokolle (Status-Only) 2026-04-29 02:04:21 +02:00
test_protokoll_parsers_be.py feat(#150): BE-Parser produktiv — Berliner Abgeordnetenhaus-Plenarprotokolle 2026-04-29 00:37:47 +02:00
test_protokoll_parsers_bund.py feat(#148): BUND-Parser produktiv — Bundestags-XML-Plenarprotokolle 2026-04-28 23:21:39 +02:00
test_protokoll_parsers_hb.py feat(#153): HB-Parser produktiv — Bremer Beschlussprotokolle (Status-Only) 2026-04-29 01:41:40 +02:00
test_protokoll_parsers_hh.py test(#155): 19 Tests fuer HH-Parser 2026-04-29 01:05:33 +02:00
test_protokoll_parsers_nrw.py test(#134): NRW Protokoll-Parser Coverage 51.7% → 85.1% 2026-04-28 11:11:52 +02:00
test_protokoll_parsers_sh.py feat(#160): SH-Parser produktiv — Schleswig-Holsteiner Plenarprotokolle 2026-04-29 01:29:06 +02:00
test_protokoll_parsers_sl.py feat(#161): SL-Parser produktiv — Saarland HTML-Abstimmungsergebnisse 2026-04-29 01:53:51 +02:00
test_protokoll_parsers_stubs.py feat(#149): BB-Parser produktiv — Brandenburger Plenarprotokolle (Status-Only) 2026-04-29 02:04:21 +02:00
test_protokoll_parsers.py feat(#126): protokoll_parsers/-Sub-Package + Registry-Pattern + ADR 0009 2026-04-28 08:37:31 +02:00
test_queue.py test(#134): queue Coverage 26.6% → 43.4% 2026-04-28 11:08:04 +02:00
test_redline_parser.py test(#134): build_pdf_href Coverage 50% → 100% 2026-04-28 08:39:05 +02:00
test_report.py chore: konsolidiere Working-Tree mit dev-Stand nach Nextcloud-Sync-Resolution 2026-05-08 00:19:41 +02:00
test_rss.py test(#134): test_rss.py — Atom-Feed-Validitaet, Filter, ETag, Limits 2026-04-28 02:01:01 +02:00
test_themen_matching.py feat: Stand-Dashboard, Score-Histogram, PM-Markdown, Live-Polling, Cluster-Indicator 2026-05-06 02:49:06 +02:00
test_thread_splitter.py feat(#178 Folge): Thread-Auto-Splitter + Quality-Audit-Skript 2026-05-06 17:08:57 +02:00
test_v2_pdf_consistency.py feat(#177): Programm-Treue im BELEGE-Layout — pro Partei zwei aufklappbare Blöcke (WP+PP) 2026-05-07 09:21:42 +02:00
test_wahlperioden.py test(#134): test_wahlperioden.py — Datum→WP-Mapping 2026-04-28 02:02:40 +02:00
test_wahlprogramm_check.py test: 467 -> 574 Tests (+107) — DDD, abgeordnetenwatch, monitoring, v2, Bug-Regressions 2026-04-25 20:55:57 +02:00
test_wahlprogramm_fetch.py test(#134): wahlprogramm_fetch Coverage 42.8% → 54.4% 2026-04-28 08:42:29 +02:00
test_wahlprogramme.py chore: konsolidiere Working-Tree mit dev-Stand nach Nextcloud-Sync-Resolution 2026-05-08 00:19:41 +02:00