Test-Audit sn_basis fortgesetzt: Pruefmanager.py fachlich geprüft (#76)

14 Testfälle nach Freigabe als geprüft markiert: test_pruefmanager.py komplett
(12 bestehende, 2 neue für Meldung/Kontext und Standardtext beim Verfahrensgebiet-Dialog).
Nebenbefunde (wirkungslose warn_actions, layer_create_failed ohne PruefAktion,
uneinheitlicher Import von ask_text) als Issue-Entwurf vorbereitet.

Testkatalog neu erzeugt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-29 12:55:17 +02:00
co-authored by Claude Opus 5.5
parent e570d4524b
commit dd1395ba2c
3 changed files with 79 additions and 23 deletions
+56
View File
@@ -775,6 +775,22 @@
"datum": "2026-09-17", "datum": "2026-09-17",
"hash": "b1a1017d7970" "hash": "b1a1017d7970"
}, },
"sn_basis.tests.test_pruefmanager.TestPruefmanager.test_frage_ja_nein_ausserhalb_qgis_liefert_default_ohne_rueckfrage": {
"datum": "2026-09-29",
"hash": "abe1e7343ee4"
},
"sn_basis.tests.test_pruefmanager.TestPruefmanager.test_frage_ja_nein_im_qgis_modus_fragt_nutzer": {
"datum": "2026-09-29",
"hash": "fd1db60647fd"
},
"sn_basis.tests.test_pruefmanager.TestPruefmanager.test_frage_text_ausserhalb_qgis_liefert_default_ohne_rueckfrage": {
"datum": "2026-09-29",
"hash": "9193acd4ab49"
},
"sn_basis.tests.test_pruefmanager.TestPruefmanager.test_frage_text_im_qgis_modus_fragt_nutzer": {
"datum": "2026-09-29",
"hash": "7ba9c25a459c"
},
"sn_basis.tests.test_pruefmanager.TestPruefmanager.test_layer_unsichtbar_ja": { "sn_basis.tests.test_pruefmanager.TestPruefmanager.test_layer_unsichtbar_ja": {
"datum": "2026-09-17", "datum": "2026-09-17",
"hash": "c6090b772bf0" "hash": "c6090b772bf0"
@@ -795,6 +811,18 @@
"datum": "2026-09-17", "datum": "2026-09-17",
"hash": "7183f163899a" "hash": "7183f163899a"
}, },
"sn_basis.tests.test_pruefmanager.TestPruefmanager.test_report_error_kritische_aktion_ruft_error_auf": {
"datum": "2026-09-29",
"hash": "11a47387b1bd"
},
"sn_basis.tests.test_pruefmanager.TestPruefmanager.test_report_error_unbekannte_aktion_faellt_auf_warning_zurueck": {
"datum": "2026-09-29",
"hash": "50fbf367421e"
},
"sn_basis.tests.test_pruefmanager.TestPruefmanager.test_report_error_warn_aktion_ruft_warning_auf": {
"datum": "2026-09-29",
"hash": "519fbaa75651"
},
"sn_basis.tests.test_pruefmanager.TestPruefmanager.test_standarddatei_vorschlagen_ja": { "sn_basis.tests.test_pruefmanager.TestPruefmanager.test_standarddatei_vorschlagen_ja": {
"datum": "2026-09-17", "datum": "2026-09-17",
"hash": "7fe9491d4249" "hash": "7fe9491d4249"
@@ -815,6 +843,34 @@
"datum": "2026-09-17", "datum": "2026-09-17",
"hash": "e369c5874b64" "hash": "e369c5874b64"
}, },
"sn_basis.tests.test_pruefmanager.TestPruefmanager.test_verfahrensgebiet_layer_existiert_abbrechen": {
"datum": "2026-09-29",
"hash": "2d15b820d589"
},
"sn_basis.tests.test_pruefmanager.TestPruefmanager.test_verfahrensgebiet_layer_existiert_entfernen": {
"datum": "2026-09-29",
"hash": "e9198c14572a"
},
"sn_basis.tests.test_pruefmanager.TestPruefmanager.test_verfahrensgebiet_layer_existiert_ergaenzen": {
"datum": "2026-09-29",
"hash": "f043bfa2b521"
},
"sn_basis.tests.test_pruefmanager.TestPruefmanager.test_verfahrensgebiet_layer_existiert_ersetzen": {
"datum": "2026-09-29",
"hash": "53c078a269ef"
},
"sn_basis.tests.test_pruefmanager.TestPruefmanager.test_verfahrensgebiet_layer_existiert_in_non_qgis_mode_returns_input": {
"datum": "2026-09-29",
"hash": "cbb7d1db019f"
},
"sn_basis.tests.test_pruefmanager.TestPruefmanager.test_verfahrensgebiet_layer_existiert_ohne_meldung_zeigt_standardtext": {
"datum": "2026-09-29",
"hash": "42cc03387488"
},
"sn_basis.tests.test_pruefmanager.TestPruefmanager.test_verfahrensgebiet_layer_existiert_reicht_meldung_und_kontext_durch": {
"datum": "2026-09-29",
"hash": "460a969e39b6"
},
"sn_basis.tests.test_settings_logic.TestSettingsLogic.test_load": { "sn_basis.tests.test_settings_logic.TestSettingsLogic.test_load": {
"datum": "2026-09-17", "datum": "2026-09-17",
"hash": "f14c558bc597" "hash": "f14c558bc597"
File diff suppressed because one or more lines are too long
+18 -18
View File
@@ -8,21 +8,21 @@ für die fachliche Frage, ob die Abdeckung sinnvoll ist. Die Angaben stammen aus
selbst (Docstrings) und aus der Testbaseline. selbst (Docstrings) und aus der Testbaseline.
Stand der Baseline: `docs/status/testbaseline.json` (SHA-256 `aeabc946a7f3`) Stand der Baseline: `docs/status/testbaseline.json` (SHA-256 `aeabc946a7f3`)
Stand des Prüf-Audits: `docs/status/testpruefungen.json` (SHA-256 `a34ebc0c74c7`) Stand des Prüf-Audits: `docs/status/testpruefungen.json` (SHA-256 `d8a74fea7cc6`)
Gesamt: 3 Pakete, 49 Testdateien, 605 Testfälle – 562 grün, 35 rot (Baseline), 8 übersprungen. Gesamt: 3 Pakete, 49 Testdateien, 605 Testfälle – 562 grün, 35 rot (Baseline), 8 übersprungen.
Mit Beschreibung (Docstring): 460 von 605 (76 %). Mit Beschreibung (Docstring): 460 von 605 (76 %).
Fachlich geprüft: 213 von 605 (35 %) aktuell, 0 veraltet seit Codeänderung, 392 nie geprüft. Fachlich geprüft: 227 von 605 (38 %) aktuell, 0 veraltet seit Codeänderung, 378 nie geprüft.
Strukturelle Lücken (heuristisch, Namensabgleich): 143 von 413 (35 %) Funktionen/Methoden ohne erkennbaren Testbezug – Abschnitt „Ungetestete Funktionen“. Strukturelle Lücken (heuristisch, Namensabgleich): 143 von 413 (35 %) Funktionen/Methoden ohne erkennbaren Testbezug – Abschnitt „Ungetestete Funktionen“.
## Zusammenfassung ## Zusammenfassung
| Paket | Testdateien | Testfälle | grün | rot (Baseline) | übersprungen | mit Beschreibung | fachlich geprüft | ohne Testbezug | | Paket | Testdateien | Testfälle | grün | rot (Baseline) | übersprungen | mit Beschreibung | fachlich geprüft | ohne Testbezug |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| `sn_basis` | 32 | 353 | 353 | 0 | 0 | 353 von 353 (100 %) | 213 von 353 (60 %) | 70 von 229 (31 %) | | `sn_basis` | 32 | 353 | 353 | 0 | 0 | 353 von 353 (100 %) | 227 von 353 (64 %) | 70 von 229 (31 %) |
| `sn_verfahrensgebiet` | 12 | 208 | 166 | 34 | 8 | 106 von 208 (51 %) | 0 von 208 (0 %) | 34 von 104 (33 %) | | `sn_verfahrensgebiet` | 12 | 208 | 166 | 34 | 8 | 106 von 208 (51 %) | 0 von 208 (0 %) | 34 von 104 (33 %) |
| `sn_plan41` | 5 | 44 | 43 | 1 | 0 | 1 von 44 (2 %) | 0 von 44 (0 %) | 39 von 80 (49 %) | | `sn_plan41` | 5 | 44 | 43 | 1 | 0 | 1 von 44 (2 %) | 0 von 44 (0 %) | 39 von 80 (49 %) |
| **Summe** | **49** | **605** | **562** | **35** | **8** | **460 von 605 (76 %)** | **213 von 605 (35 %)** | **143 von 413 (35 %)** | | **Summe** | **49** | **605** | **562** | **35** | **8** | **460 von 605 (76 %)** | **227 von 605 (38 %)** | **143 von 413 (35 %)** |
### Legende ### Legende
@@ -591,20 +591,20 @@ Testgruppen:
| `TestPruefmanager.test_datei_existiert_append` | Prüft, dass die Nutzerwahl 'anhängen' bei bestehender Datei zur Aktion 'datei_existiert_anhaengen' führt. | grün | geprüft am 2026-09-17 | | `TestPruefmanager.test_datei_existiert_append` | Prüft, dass die Nutzerwahl 'anhängen' bei bestehender Datei zur Aktion 'datei_existiert_anhaengen' führt. | grün | geprüft am 2026-09-17 |
| `TestPruefmanager.test_datei_existiert_cancel` | Prüft, dass die Nutzerwahl 'abbrechen' bei bestehender Datei zur Aktion 'datei_existiert_ueberspringen' führt. | grün | geprüft am 2026-09-17 | | `TestPruefmanager.test_datei_existiert_cancel` | Prüft, dass die Nutzerwahl 'abbrechen' bei bestehender Datei zur Aktion 'datei_existiert_ueberspringen' führt. | grün | geprüft am 2026-09-17 |
| `TestPruefmanager.test_datei_existiert_in_non_qgis_mode_returns_input` | Prüft, dass außerhalb des QGIS-Modus bei bestehender Datei keine Rückfrage erfolgt, sondern die ursprüngliche Aktion unentschieden zurückgegeben wird. | grün | geprüft am 2026-09-17 | | `TestPruefmanager.test_datei_existiert_in_non_qgis_mode_returns_input` | Prüft, dass außerhalb des QGIS-Modus bei bestehender Datei keine Rückfrage erfolgt, sondern die ursprüngliche Aktion unentschieden zurückgegeben wird. | grün | geprüft am 2026-09-17 |
| `TestPruefmanager.test_verfahrensgebiet_layer_existiert_ergaenzen` | Prüft, dass die Nutzerwahl 'ergänzen' bei bestehendem Verfahrensgebiet zur Aktion 'verfahrensgebiet_ergaenzen' führt. | grün | nie geprüft | | `TestPruefmanager.test_verfahrensgebiet_layer_existiert_ergaenzen` | Prüft, dass die Nutzerwahl 'ergänzen' bei bestehendem Verfahrensgebiet zur Aktion 'verfahrensgebiet_ergaenzen' führt. | grün | geprüft am 2026-09-29 |
| `TestPruefmanager.test_verfahrensgebiet_layer_existiert_abbrechen` | Prüft, dass die Nutzerwahl 'abbrechen' bei bestehendem Verfahrensgebiet ok=False mit Aktion 'verfahrensgebiet_abbrechen' liefert. | grün | nie geprüft | | `TestPruefmanager.test_verfahrensgebiet_layer_existiert_abbrechen` | Prüft, dass die Nutzerwahl 'abbrechen' bei bestehendem Verfahrensgebiet ok=False mit Aktion 'verfahrensgebiet_abbrechen' liefert. | grün | geprüft am 2026-09-29 |
| `TestPruefmanager.test_verfahrensgebiet_layer_existiert_entfernen` | Prüft, dass die Nutzerwahl 'entfernen' bei bestehendem Verfahrensgebiet zur Aktion 'verfahrensgebiet_entfernen' führt. | grün | nie geprüft | | `TestPruefmanager.test_verfahrensgebiet_layer_existiert_entfernen` | Prüft, dass die Nutzerwahl 'entfernen' bei bestehendem Verfahrensgebiet zur Aktion 'verfahrensgebiet_entfernen' führt. | grün | geprüft am 2026-09-29 |
| `TestPruefmanager.test_verfahrensgebiet_layer_existiert_ersetzen` | Prüft, dass die Nutzerwahl 'ersetzen' bei bestehendem Verfahrensgebiet zur Aktion 'verfahrensgebiet_ersetzen' führt. | grün | nie geprüft | | `TestPruefmanager.test_verfahrensgebiet_layer_existiert_ersetzen` | Prüft, dass die Nutzerwahl 'ersetzen' bei bestehendem Verfahrensgebiet zur Aktion 'verfahrensgebiet_ersetzen' führt. | grün | geprüft am 2026-09-29 |
| `TestPruefmanager.test_verfahrensgebiet_layer_existiert_reicht_meldung_und_kontext_durch` | Prüft, dass der Dialog die Meldung des Aufrufers zeigt und die Entscheidung den Kontext (bestehender Layer) weiterträgt. | grün | nie geprüft | | `TestPruefmanager.test_verfahrensgebiet_layer_existiert_reicht_meldung_und_kontext_durch` | Prüft, dass der Dialog die Meldung des Aufrufers zeigt und die Entscheidung den Kontext (bestehender Layer) weiterträgt. | grün | geprüft am 2026-09-29 |
| `TestPruefmanager.test_verfahrensgebiet_layer_existiert_ohne_meldung_zeigt_standardtext` | Prüft, dass der Dialog ohne Meldung des Aufrufers einen Standardtext mit der Frage nach dem weiteren Vorgehen zeigt. | grün | nie geprüft | | `TestPruefmanager.test_verfahrensgebiet_layer_existiert_ohne_meldung_zeigt_standardtext` | Prüft, dass der Dialog ohne Meldung des Aufrufers einen Standardtext mit der Frage nach dem weiteren Vorgehen zeigt. | grün | geprüft am 2026-09-29 |
| `TestPruefmanager.test_verfahrensgebiet_layer_existiert_in_non_qgis_mode_returns_input` | Prüft, dass außerhalb des QGIS-Modus bei bestehendem Verfahrensgebiet keine Rückfrage erfolgt. | grün | nie geprüft | | `TestPruefmanager.test_verfahrensgebiet_layer_existiert_in_non_qgis_mode_returns_input` | Prüft, dass außerhalb des QGIS-Modus bei bestehendem Verfahrensgebiet keine Rückfrage erfolgt. | grün | geprüft am 2026-09-29 |
| `TestPruefmanager.test_report_error_kritische_aktion_ruft_error_auf` | Prüft, dass eine kritische Aktion (z. B. 'netzwerkfehler') über error() gemeldet wird, nicht über warning(). | grün | nie geprüft | | `TestPruefmanager.test_report_error_kritische_aktion_ruft_error_auf` | Prüft, dass eine kritische Aktion (z. B. 'netzwerkfehler') über error() gemeldet wird, nicht über warning(). | grün | geprüft am 2026-09-29 |
| `TestPruefmanager.test_report_error_warn_aktion_ruft_warning_auf` | Prüft, dass eine Warn-Aktion (z. B. 'datei_nicht_gefunden') über warning() gemeldet wird, nicht über error(). | grün | nie geprüft | | `TestPruefmanager.test_report_error_warn_aktion_ruft_warning_auf` | Prüft, dass eine Warn-Aktion (z. B. 'datei_nicht_gefunden') über warning() gemeldet wird, nicht über error(). | grün | geprüft am 2026-09-29 |
| `TestPruefmanager.test_report_error_unbekannte_aktion_faellt_auf_warning_zurueck` | Prüft, dass eine nicht eingestufte Aktion als Fallback über warning() gemeldet wird. | grün | nie geprüft | | `TestPruefmanager.test_report_error_unbekannte_aktion_faellt_auf_warning_zurueck` | Prüft, dass eine nicht eingestufte Aktion als Fallback über warning() gemeldet wird. | grün | geprüft am 2026-09-29 |
| `TestPruefmanager.test_frage_ja_nein_im_qgis_modus_fragt_nutzer` | Prüft, dass frage_ja_nein im QGIS-Modus den Nutzer fragt und dessen Antwort liefert. | grün | nie geprüft | | `TestPruefmanager.test_frage_ja_nein_im_qgis_modus_fragt_nutzer` | Prüft, dass frage_ja_nein im QGIS-Modus den Nutzer fragt und dessen Antwort liefert. | grün | geprüft am 2026-09-29 |
| `TestPruefmanager.test_frage_ja_nein_ausserhalb_qgis_liefert_default_ohne_rueckfrage` | Prüft, dass frage_ja_nein außerhalb des QGIS-Modus den Default-Wert liefert, ohne den Nutzer zu fragen. | grün | nie geprüft | | `TestPruefmanager.test_frage_ja_nein_ausserhalb_qgis_liefert_default_ohne_rueckfrage` | Prüft, dass frage_ja_nein außerhalb des QGIS-Modus den Default-Wert liefert, ohne den Nutzer zu fragen. | grün | geprüft am 2026-09-29 |
| `TestPruefmanager.test_frage_text_im_qgis_modus_fragt_nutzer` | Prüft, dass frage_text im QGIS-Modus den Nutzer fragt und Text plus OK-Status liefert. | grün | nie geprüft | | `TestPruefmanager.test_frage_text_im_qgis_modus_fragt_nutzer` | Prüft, dass frage_text im QGIS-Modus den Nutzer fragt und Text plus OK-Status liefert. | grün | geprüft am 2026-09-29 |
| `TestPruefmanager.test_frage_text_ausserhalb_qgis_liefert_default_ohne_rueckfrage` | Prüft, dass frage_text außerhalb des QGIS-Modus den Standardtext mit OK=True liefert, ohne den Nutzer zu fragen. | grün | nie geprüft | | `TestPruefmanager.test_frage_text_ausserhalb_qgis_liefert_default_ohne_rueckfrage` | Prüft, dass frage_text außerhalb des QGIS-Modus den Standardtext mit OK=True liefert, ohne den Nutzer zu fragen. | grün | geprüft am 2026-09-29 |
### `Plugin_SN_Basis/tests/test_qgiscore_wrapper_helpers.py` ### `Plugin_SN_Basis/tests/test_qgiscore_wrapper_helpers.py`