From f2eb883162c45423510440302bda0ffd0e351109 Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 17 Sep 2026 12:12:03 +0200 Subject: [PATCH] Testkatalog neu erzeugt: TestFlurstueckAlkis-Korrekturen (#16) Nach der Testabgleichung in Plugin_SN_Verfahrensgebiet (bugfix/16- flurstueck-alkis-testabgleich): Docstrings jetzt in "Prueft, dass ..."- Form, ein Test entfernt, Gruen/Rot-Zaehlung aktualisiert. Co-Authored-By: Claude Sonnet 5 --- docs/tests/testkatalog.html | 40 ++++++++++++++++++------------------- docs/tests/testkatalog.md | 39 ++++++++++++++++++------------------ 2 files changed, 38 insertions(+), 41 deletions(-) diff --git a/docs/tests/testkatalog.html b/docs/tests/testkatalog.html index 9062240..7a6f244 100644 --- a/docs/tests/testkatalog.html +++ b/docs/tests/testkatalog.html @@ -121,9 +121,9 @@ Testkatalog der sn_*-Plugins — was die Suite heute prüft, auf einen Blick.
Quelle: docs/tests/testkatalog.md
Baseline: docs/status/testbaseline.json (SHA-256 aeabc946a7f3)
Prüf-Audit: docs/status/testpruefungen.json (SHA-256 e2ea4d5d5f8a)
-
346Testfälle
-
301grün
-
37rot (Baseline)
+
345Testfälle
+
302grün
+
35rot (Baseline)
58%mit Docstring
2%aktuell geprüft
@@ -131,12 +131,12 @@
Verteilung je Paket
sn_basis14 Dateien · 94 Testfälle
-
sn_verfahrensgebiet12 Dateien · 208 Testfälle
+
sn_verfahrensgebiet12 Dateien · 207 Testfälle
sn_plan415 Dateien · 44 Testfälle
@@ -471,10 +471,10 @@

sn_verfahrensgebiet

-

Fachplugin · Ordner Plugin_SN_Verfahrensgebiet · 12 Testdateien · 208 Testfälle

+

Fachplugin · Ordner Plugin_SN_Verfahrensgebiet · 12 Testdateien · 207 Testfälle

-

Unit-Tests für `sn_verfahrensgebiet.functions.beteiligung_pruefung`.

TestBaueFlurstueckCsv 12TestBaueFlurstueckCsvListe 1TestHoleVerfahrensgebietLayer 3TestFordereManuellesLadenAn 2TestTry3Bootstrap 1TestBeteiligungPruefenDispatch 2TestLadeBeteiligungCsv 4
flowchart TD
@@ -561,10 +561,10 @@
   classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
   classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
   classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
-  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestDockWidget
test_init_tabs_with_services_injects_available_services
— (Docstring fehlt)grünnie geprüft
TestDockWidget
test_init_tabs_with_services_reports_errors
— (Docstring fehlt)grünnie geprüft

Unit-Tests für das flurstueck_alkis-Modul.

TestFlurstueckAlkis 12TestFlurstueckAlkisAnhaengenDedup 3
flowchart TD
+  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestDockWidget
test_init_tabs_with_services_injects_available_services
— (Docstring fehlt)grünnie geprüft
TestDockWidget
test_init_tabs_with_services_reports_errors
— (Docstring fehlt)grünnie geprüft

Unit-Tests für das flurstueck_alkis-Modul.

TestFlurstueckAlkis 11TestFlurstueckAlkisAnhaengenDedup 3
flowchart TD
   root(["test_flurstueck_alkis.py"])
   class root rootnode
-  root --> g1["TestFlurstueckAlkis (12)"]
+  root --> g1["TestFlurstueckAlkis (11)"]
   class g1 groupnode
   g1 --> t1("user_cancel_returns_none")
   g1 --> t2("empty_text_after_confirmation_returns_none")
@@ -572,37 +572,35 @@
   g1 --> t4("success_returns_layer_and_first_status")
   g1 --> t5("sql_filter_contains_all_schluessel")
   g1 --> t6("existing_layer_reload_yes")
-  g1 --> t7("existing_layer_keep_no")
+  g1 --> t7("existing_layer_abbrechen_returns_none")
   g1 --> t8("vorgabe_schluessel_prefills_default_text")
   g1 --> t9("vorgabe_namen_appears_in_label")
-  g1 --> t10("bbox_embedded_in_wfs_uri")
-  g1 --> t11("backwards_compatible_no_new_params")
-  g1 --> t12("ohne_schluessel_abfrage_ueberspringt_ask_text")
+  g1 --> t10("backwards_compatible_no_new_params")
+  g1 --> t11("ohne_schluessel_abfrage_ueberspringt_ask_text")
   root --> g2["TestFlurstueckAlkisAnhaengenDedup (3)"]
   class g2 groupnode
-  g2 --> t13("append_ueberspringt_bereits_vorhandene_flurstuecke")
-  g2 --> t14("append_ohne_kennzeichen_feld_haengt_alles_an")
-  g2 --> t15("ohne_schluessel_abfrage_append_dedup")
+  g2 --> t12("append_ueberspringt_bereits_vorhandene_flurstuecke")
+  g2 --> t13("append_ohne_kennzeichen_feld_haengt_alles_an")
+  g2 --> t14("ohne_schluessel_abfrage_append_dedup")
   class t1 ok
   class t2 ok
   class t3 ok
   class t4 warn
   class t5 warn
   class t6 warn
-  class t7 warn
+  class t7 ok
   class t8 warn
   class t9 warn
   class t10 warn
-  class t11 warn
+  class t11 ok
   class t12 ok
   class t13 ok
   class t14 ok
-  class t15 ok
   classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
   classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
   classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
   classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
-  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestFlurstueckAlkis
test_user_cancel_returns_none
ask_text → ok=False, text="" → (None, NONE).grünnie geprüft
TestFlurstueckAlkis
test_empty_text_after_confirmation_returns_none
ask_text → ok=True, aber Text leer → (None, NONE).grünnie geprüft
TestFlurstueckAlkis
test_invalid_wfs_layer_returns_none
WFS-Layer nicht valide → (None, NONE).grünnie geprüft
TestFlurstueckAlkis
test_success_returns_layer_and_first_status
Kein bestehender Layer, WFS valide → (layer, FIRST).rotnie geprüft
TestFlurstueckAlkis
test_sql_filter_contains_all_schluessel
Der WFS-URI enthält alle eingegebenen Gemarkungsschlüssel.rotnie geprüft
TestFlurstueckAlkis
test_existing_layer_reload_yes
Bestehender Layer + Nutzer: 'Ja, neu laden' → LoadStatus.RELOAD.rotnie geprüft
TestFlurstueckAlkis
test_existing_layer_keep_no
Bestehender Layer + Nutzer: 'Nein, behalten' → LoadStatus.KEEP.rotnie geprüft
TestFlurstueckAlkis
test_vorgabe_schluessel_prefills_default_text
vorgabe_schluessel=['1234','5678'] → ask_text erhält '1234, 5678' als default_text.rotnie geprüft
TestFlurstueckAlkis
test_vorgabe_namen_appears_in_label
vorgabe_namen=['Musterstadt'] → ask_text-label enthält den Namen.rotnie geprüft
TestFlurstueckAlkis
test_bbox_embedded_in_wfs_uri
bbox-Parameter → WFS-URI enthält 'bbox=' Substring.rotnie geprüft
TestFlurstueckAlkis
test_backwards_compatible_no_new_params
flurstueck_alkis(tab) ohne neue Parameter → kein Fehler.rotnie geprüft
TestFlurstueckAlkis
test_ohne_schluessel_abfrage_ueberspringt_ask_text
ohne_schluessel_abfrage=True verwendet vorgabe_schluessel direkt, ohne ask_text aufzurufen.grünnie geprüft
TestFlurstueckAlkisAnhaengenDedup
test_append_ueberspringt_bereits_vorhandene_flurstuecke
Prüft, dass beim Anhängen bereits vorhandene flurstueckskennzeichen nicht erneut hinzugefügt werden.grünnie geprüft
TestFlurstueckAlkisAnhaengenDedup
test_append_ohne_kennzeichen_feld_haengt_alles_an
Prüft, dass ohne flurstueckskennzeichen-Feld weiterhin alle Features angehängt werden (Rückfallverhalten).grünnie geprüft
TestFlurstueckAlkisAnhaengenDedup
test_ohne_schluessel_abfrage_append_dedup
ohne_schluessel_abfrage=True: Anhängen dedupliziert trotzdem, ohne nach Schlüsseln zu fragen (#47).grünnie geprüft

Unit-Tests für `sn_verfahrensgebiet.functions.gemarkung_alkis`.

TestExtractSchluesselUndName 4TestGemarkungSchluesselbbox 6TestGemarkungSchluesselnurNummern 2TestLadeGemarkungenlayer 2
flowchart TD
+  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestFlurstueckAlkis
test_user_cancel_returns_none
Prüft, dass ein Abbruch im Eingabedialog (ok=False) (None, LoadStatus.NONE) liefert.grünnie geprüft
TestFlurstueckAlkis
test_empty_text_after_confirmation_returns_none
Prüft, dass ein bestätigter, aber leerer Eingabetext ebenfalls (None, LoadStatus.NONE) liefert.grünnie geprüft
TestFlurstueckAlkis
test_invalid_wfs_layer_returns_none
Prüft, dass ein ungültiger WFS-Layer (None, LoadStatus.NONE) liefert.grünnie geprüft
TestFlurstueckAlkis
test_success_returns_layer_and_first_status
Prüft, dass ohne bestehenden Layer der von lade_flurstuecke_per_gemarkung gelieferte Layer mit LoadStatus.FIRST zurückgegeben wird.rotnie geprüft
TestFlurstueckAlkis
test_sql_filter_contains_all_schluessel
Prüft, dass lade_flurstuecke_per_gemarkung für jeden Gemarkungsschlüssel eine eigene WFS-Anfrage mit dessen Schlüssel stellt.rotnie geprüft
TestFlurstueckAlkis
test_existing_layer_reload_yes
Prüft, dass bei bestehendem Layer und Klick auf 'Überschreiben' der alte Layer entfernt und LoadStatus.RELOAD geliefert wird.rotnie geprüft
TestFlurstueckAlkis
test_existing_layer_abbrechen_returns_none
Prüft, dass bei bestehendem Layer und Klick auf 'Abbrechen' nichts verändert wird und (None, LoadStatus.NONE) geliefert wird.grünnie geprüft
TestFlurstueckAlkis
test_vorgabe_schluessel_prefills_default_text
Prüft, dass vorgabe_schluessel als vorbelegter default_text im Eingabedialog erscheint.rotnie geprüft
TestFlurstueckAlkis
test_vorgabe_namen_appears_in_label
Prüft, dass vorgabe_namen im Beschriftungstext des Eingabedialogs erscheint.rotnie geprüft
TestFlurstueckAlkis
test_backwards_compatible_no_new_params
Prüft, dass flurstueck_alkis() ohne die neuen optionalen Parameter weiterhin fehlerfrei einen Layer mit LoadStatus.FIRST liefert.rotnie geprüft
TestFlurstueckAlkis
test_ohne_schluessel_abfrage_ueberspringt_ask_text
Prüft, dass ohne_schluessel_abfrage=True vorgabe_schluessel direkt verwendet und ask_text nicht aufgerufen wird.grünnie geprüft
TestFlurstueckAlkisAnhaengenDedup
test_append_ueberspringt_bereits_vorhandene_flurstuecke
Prüft, dass beim Anhängen bereits vorhandene flurstueckskennzeichen nicht erneut hinzugefügt werden.grünnie geprüft
TestFlurstueckAlkisAnhaengenDedup
test_append_ohne_kennzeichen_feld_haengt_alles_an
Prüft, dass ohne flurstueckskennzeichen-Feld weiterhin alle Features angehängt werden (Rückfallverhalten).grünnie geprüft
TestFlurstueckAlkisAnhaengenDedup
test_ohne_schluessel_abfrage_append_dedup
ohne_schluessel_abfrage=True: Anhängen dedupliziert trotzdem, ohne nach Schlüsseln zu fragen (#47).grünnie geprüft

Unit-Tests für `sn_verfahrensgebiet.functions.gemarkung_alkis`.

TestExtractSchluesselUndName 4TestGemarkungSchluesselbbox 6TestGemarkungSchluesselnurNummern 2TestLadeGemarkungenlayer 2
flowchart TD
   root(["test_gemarkung_alkis.py"])
   class root rootnode
   root --> g1["TestExtractSchluesselUndName (4)"]
diff --git a/docs/tests/testkatalog.md b/docs/tests/testkatalog.md
index 24fda6f..edea178 100644
--- a/docs/tests/testkatalog.md
+++ b/docs/tests/testkatalog.md
@@ -10,18 +10,18 @@ selbst (Docstrings) und aus der Testbaseline.
 Stand der Baseline: `docs/status/testbaseline.json` (SHA-256 `aeabc946a7f3`)
 Stand des Prüf-Audits: `docs/status/testpruefungen.json` (SHA-256 `e2ea4d5d5f8a`)
 
-Gesamt: 3 Pakete, 31 Testdateien, 346 Testfälle – 301 grün, 37 rot (Baseline), 8 übersprungen.
-Mit Beschreibung (Docstring): 201 von 346 (58 %).
-Fachlich geprüft: 6 von 346 (2 %) aktuell, 0 veraltet seit Codeänderung, 340 nie geprüft.
+Gesamt: 3 Pakete, 31 Testdateien, 345 Testfälle – 302 grün, 35 rot (Baseline), 8 übersprungen.
+Mit Beschreibung (Docstring): 200 von 345 (58 %).
+Fachlich geprüft: 6 von 345 (2 %) aktuell, 0 veraltet seit Codeänderung, 339 nie geprüft.
 
 ## Zusammenfassung
 
 | Paket | Testdateien | Testfälle | grün | rot (Baseline) | übersprungen | mit Beschreibung | fachlich geprüft |
 | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
 | `sn_basis` | 14 | 94 | 94 | 0 | 0 | 94 von 94 (100 %) | 6 von 94 (6 %) |
-| `sn_verfahrensgebiet` | 12 | 208 | 164 | 36 | 8 | 106 von 208 (51 %) | 0 von 208 (0 %) |
+| `sn_verfahrensgebiet` | 12 | 207 | 165 | 34 | 8 | 105 von 207 (51 %) | 0 von 207 (0 %) |
 | `sn_plan41` | 5 | 44 | 43 | 1 | 0 | 1 von 44 (2 %) | 0 von 44 (0 %) |
-| **Summe** | **31** | **346** | **301** | **37** | **8** | **201 von 346 (58 %)** | **6 von 346 (2 %)** |
+| **Summe** | **31** | **345** | **302** | **35** | **8** | **200 von 345 (58 %)** | **6 von 345 (2 %)** |
 
 ### Legende
 
@@ -281,7 +281,7 @@ Testgruppen:
 
 ## Paket `sn_verfahrensgebiet`
 
-Fachplugin, Ordner `Plugin_SN_Verfahrensgebiet` – 12 Testdateien mit 208 Testfällen (164 grün, 36 rot, 8 übersprungen).
+Fachplugin, Ordner `Plugin_SN_Verfahrensgebiet` – 12 Testdateien mit 207 Testfällen (165 grün, 34 rot, 8 übersprungen).
 
 ### `Plugin_SN_Verfahrensgebiet/tests/test_beteiligung_pruefung.py`
 
@@ -344,23 +344,22 @@ Worum es in der Datei geht: Unit-Tests für das flurstueck_alkis-Modul.
 
 Testgruppen:
 
-- `TestFlurstueckAlkis` (12 Testfälle): — (Docstring fehlt)
+- `TestFlurstueckAlkis` (11 Testfälle): — (Docstring fehlt)
 - `TestFlurstueckAlkisAnhaengenDedup` (3 Testfälle): Anhängen an einen bestehenden Flurstück-Layer (Issue #28).
 
 | Testfall | prüft | Status | geprüft |
 | --- | --- | --- | --- |
-| `TestFlurstueckAlkis.test_user_cancel_returns_none` | ask_text → ok=False, text="" → (None, NONE). | grün | nie geprüft |
-| `TestFlurstueckAlkis.test_empty_text_after_confirmation_returns_none` | ask_text → ok=True, aber Text leer → (None, NONE). | grün | nie geprüft |
-| `TestFlurstueckAlkis.test_invalid_wfs_layer_returns_none` | WFS-Layer nicht valide → (None, NONE). | grün | nie geprüft |
-| `TestFlurstueckAlkis.test_success_returns_layer_and_first_status` | Kein bestehender Layer, WFS valide → (layer, FIRST). | rot (Baseline) | nie geprüft |
-| `TestFlurstueckAlkis.test_sql_filter_contains_all_schluessel` | Der WFS-URI enthält alle eingegebenen Gemarkungsschlüssel. | rot (Baseline) | nie geprüft |
-| `TestFlurstueckAlkis.test_existing_layer_reload_yes` | Bestehender Layer + Nutzer: 'Ja, neu laden' → LoadStatus.RELOAD. | rot (Baseline) | nie geprüft |
-| `TestFlurstueckAlkis.test_existing_layer_keep_no` | Bestehender Layer + Nutzer: 'Nein, behalten' → LoadStatus.KEEP. | rot (Baseline) | nie geprüft |
-| `TestFlurstueckAlkis.test_vorgabe_schluessel_prefills_default_text` | vorgabe_schluessel=['1234','5678'] → ask_text erhält '1234, 5678' als default_text. | rot (Baseline) | nie geprüft |
-| `TestFlurstueckAlkis.test_vorgabe_namen_appears_in_label` | vorgabe_namen=['Musterstadt'] → ask_text-label enthält den Namen. | rot (Baseline) | nie geprüft |
-| `TestFlurstueckAlkis.test_bbox_embedded_in_wfs_uri` | bbox-Parameter → WFS-URI enthält 'bbox=' Substring. | rot (Baseline) | nie geprüft |
-| `TestFlurstueckAlkis.test_backwards_compatible_no_new_params` | flurstueck_alkis(tab) ohne neue Parameter → kein Fehler. | rot (Baseline) | nie geprüft |
-| `TestFlurstueckAlkis.test_ohne_schluessel_abfrage_ueberspringt_ask_text` | ohne_schluessel_abfrage=True verwendet vorgabe_schluessel direkt, ohne ask_text aufzurufen. | grün | nie geprüft |
+| `TestFlurstueckAlkis.test_user_cancel_returns_none` | Prüft, dass ein Abbruch im Eingabedialog (ok=False) (None, LoadStatus.NONE) liefert. | grün | nie geprüft |
+| `TestFlurstueckAlkis.test_empty_text_after_confirmation_returns_none` | Prüft, dass ein bestätigter, aber leerer Eingabetext ebenfalls (None, LoadStatus.NONE) liefert. | grün | nie geprüft |
+| `TestFlurstueckAlkis.test_invalid_wfs_layer_returns_none` | Prüft, dass ein ungültiger WFS-Layer (None, LoadStatus.NONE) liefert. | grün | nie geprüft |
+| `TestFlurstueckAlkis.test_success_returns_layer_and_first_status` | Prüft, dass ohne bestehenden Layer der von lade_flurstuecke_per_gemarkung gelieferte Layer mit LoadStatus.FIRST zurückgegeben wird. | rot (Baseline) | nie geprüft |
+| `TestFlurstueckAlkis.test_sql_filter_contains_all_schluessel` | Prüft, dass lade_flurstuecke_per_gemarkung für jeden Gemarkungsschlüssel eine eigene WFS-Anfrage mit dessen Schlüssel stellt. | rot (Baseline) | nie geprüft |
+| `TestFlurstueckAlkis.test_existing_layer_reload_yes` | Prüft, dass bei bestehendem Layer und Klick auf 'Überschreiben' der alte Layer entfernt und LoadStatus.RELOAD geliefert wird. | rot (Baseline) | nie geprüft |
+| `TestFlurstueckAlkis.test_existing_layer_abbrechen_returns_none` | Prüft, dass bei bestehendem Layer und Klick auf 'Abbrechen' nichts verändert wird und (None, LoadStatus.NONE) geliefert wird. | grün | nie geprüft |
+| `TestFlurstueckAlkis.test_vorgabe_schluessel_prefills_default_text` | Prüft, dass vorgabe_schluessel als vorbelegter default_text im Eingabedialog erscheint. | rot (Baseline) | nie geprüft |
+| `TestFlurstueckAlkis.test_vorgabe_namen_appears_in_label` | Prüft, dass vorgabe_namen im Beschriftungstext des Eingabedialogs erscheint. | rot (Baseline) | nie geprüft |
+| `TestFlurstueckAlkis.test_backwards_compatible_no_new_params` | Prüft, dass flurstueck_alkis() ohne die neuen optionalen Parameter weiterhin fehlerfrei einen Layer mit LoadStatus.FIRST liefert. | rot (Baseline) | nie geprüft |
+| `TestFlurstueckAlkis.test_ohne_schluessel_abfrage_ueberspringt_ask_text` | Prüft, dass ohne_schluessel_abfrage=True vorgabe_schluessel direkt verwendet und ask_text nicht aufgerufen wird. | grün | nie geprüft |
 | `TestFlurstueckAlkisAnhaengenDedup.test_append_ueberspringt_bereits_vorhandene_flurstuecke` | Prüft, dass beim Anhängen bereits vorhandene flurstueckskennzeichen nicht erneut hinzugefügt werden. | grün | nie geprüft |
 | `TestFlurstueckAlkisAnhaengenDedup.test_append_ohne_kennzeichen_feld_haengt_alles_an` | Prüft, dass ohne flurstueckskennzeichen-Feld weiterhin alle Features angehängt werden (Rückfallverhalten). | grün | nie geprüft |
 | `TestFlurstueckAlkisAnhaengenDedup.test_ohne_schluessel_abfrage_append_dedup` | ohne_schluessel_abfrage=True: Anhängen dedupliziert trotzdem, ohne nach Schlüsseln zu fragen (#47). | grün | nie geprüft |
@@ -769,7 +768,7 @@ dann verschwindet er hier von selbst.
 
 Keine Lücken.
 
-### `sn_verfahrensgebiet` – 102 von 208 Testfällen ohne Beschreibung
+### `sn_verfahrensgebiet` – 102 von 207 Testfällen ohne Beschreibung
 
 #### `Plugin_SN_Verfahrensgebiet/tests/test_beteiligung_pruefung.py` (25 von 25)