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

14 Testfälle nach Freigabe als geprüft markiert: test_verfahrensgebiet_manager.py komplett
(13 bestehende, davon 2 geschärft und 1 mit präzisiertem Docstring, und 1 neuer, der den
Ist-Zustand festhält). Befund: eine manuelle Auswahl des Verfahrensgebiet-Layers wird bei
jedem hinzugefügten Layer überschrieben; Issue-Entwurf vorbereitet.

Testkatalog neu erzeugt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-26 20:44:44 +01:00
co-authored by Claude Opus 5.5
parent 851287a0e1
commit c2ed00a28e
3 changed files with 97 additions and 38 deletions
+56
View File
@@ -1158,5 +1158,61 @@
"sn_basis.tests.test_variable_wrapper.TestVariableWrapper.test_set_variable_project_noop_write_is_skipped": { "sn_basis.tests.test_variable_wrapper.TestVariableWrapper.test_set_variable_project_noop_write_is_skipped": {
"datum": "2026-10-26", "datum": "2026-10-26",
"hash": "38ee0f7ec99b" "hash": "38ee0f7ec99b"
},
"sn_basis.tests.test_verfahrensgebiet_manager.ListenerSetupTests.test_setup_ohne_qgis_tut_nichts": {
"datum": "2026-10-26",
"hash": "883356ae2dbc"
},
"sn_basis.tests.test_verfahrensgebiet_manager.ListenerSetupTests.test_setup_verbindet_signale_und_ist_idempotent": {
"datum": "2026-10-26",
"hash": "64e42c4abef8"
},
"sn_basis.tests.test_verfahrensgebiet_manager.ListenerSetupTests.test_teardown_trennt_alle_signale_und_ist_idempotent": {
"datum": "2026-10-26",
"hash": "ba6d367b3c40"
},
"sn_basis.tests.test_verfahrensgebiet_manager.OnHandlerTests.test_on_layer_removed_bei_aktuellem_layer_sucht_neu": {
"datum": "2026-10-26",
"hash": "8c2ebafb61a1"
},
"sn_basis.tests.test_verfahrensgebiet_manager.OnHandlerTests.test_on_layer_removed_bei_anderem_layer_aendert_nichts": {
"datum": "2026-10-26",
"hash": "4453786aea34"
},
"sn_basis.tests.test_verfahrensgebiet_manager.OnHandlerTests.test_on_layers_added_findet_neuen_layer": {
"datum": "2026-10-26",
"hash": "241487f6103b"
},
"sn_basis.tests.test_verfahrensgebiet_manager.OnHandlerTests.test_on_layers_added_setzt_manuelle_auswahl_derzeit_zurueck": {
"datum": "2026-10-26",
"hash": "802fe6311c77"
},
"sn_basis.tests.test_verfahrensgebiet_manager.OnHandlerTests.test_on_project_changed_mit_layer_setzt_variable": {
"datum": "2026-10-26",
"hash": "05a6d3b20d5a"
},
"sn_basis.tests.test_verfahrensgebiet_manager.OnHandlerTests.test_on_project_changed_ohne_layer_setzt_variable_leer": {
"datum": "2026-10-26",
"hash": "894bf87d5902"
},
"sn_basis.tests.test_verfahrensgebiet_manager.TestVerfahrensgebietManager.test_get_verfahrensgebiet_layer_id_returns_none_for_empty_value": {
"datum": "2026-10-26",
"hash": "2b9de10a603d"
},
"sn_basis.tests.test_verfahrensgebiet_manager.TestVerfahrensgebietManager.test_get_verfahrensgebiet_layer_id_returns_value": {
"datum": "2026-10-26",
"hash": "2585e72e5ad4"
},
"sn_basis.tests.test_verfahrensgebiet_manager.TestVerfahrensgebietManager.test_set_verfahrensgebiet_layer_id_writes_project_variable": {
"datum": "2026-10-26",
"hash": "cba6341e2af5"
},
"sn_basis.tests.test_verfahrensgebiet_manager.TestVerfahrensgebietManager.test_update_with_layer_writes_variable": {
"datum": "2026-10-26",
"hash": "32595d814af1"
},
"sn_basis.tests.test_verfahrensgebiet_manager.TestVerfahrensgebietManager.test_update_without_layer_does_not_write_when_already_empty": {
"datum": "2026-10-26",
"hash": "acc0544f207c"
} }
} }
File diff suppressed because one or more lines are too long
+23 -22
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 `b5c66dc5bdb2`) Stand des Prüf-Audits: `docs/status/testpruefungen.json` (SHA-256 `531ba212c582`)
Gesamt: 3 Pakete, 55 Testdateien, 697 Testfälle – 654 grün, 35 rot (Baseline), 8 übersprungen. Gesamt: 3 Pakete, 55 Testdateien, 698 Testfälle – 655 grün, 35 rot (Baseline), 8 übersprungen.
Mit Beschreibung (Docstring): 552 von 697 (79 %). Mit Beschreibung (Docstring): 553 von 698 (79 %).
Fachlich geprüft: 290 von 697 (42 %) aktuell, 0 veraltet seit Codeänderung, 407 nie geprüft. Fachlich geprüft: 304 von 698 (44 %) aktuell, 0 veraltet seit Codeänderung, 394 nie geprüft.
Strukturelle Lücken (heuristisch, Namensabgleich): 160 von 470 (34 %) Funktionen/Methoden ohne erkennbaren Testbezug – Abschnitt „Ungetestete Funktionen“. Strukturelle Lücken (heuristisch, Namensabgleich): 160 von 470 (34 %) 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 | 364 | 364 | 0 | 0 | 364 von 364 (100 %) | 290 von 364 (80 %) | 70 von 229 (31 %) | | `sn_basis` | 32 | 365 | 365 | 0 | 0 | 365 von 365 (100 %) | 304 von 365 (83 %) | 70 von 229 (31 %) |
| `sn_verfahrensgebiet` | 18 | 289 | 247 | 34 | 8 | 187 von 289 (65 %) | 0 von 289 (0 %) | 51 von 161 (32 %) | | `sn_verfahrensgebiet` | 18 | 289 | 247 | 34 | 8 | 187 von 289 (65 %) | 0 von 289 (0 %) | 51 von 161 (32 %) |
| `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** | **55** | **697** | **654** | **35** | **8** | **552 von 697 (79 %)** | **290 von 697 (42 %)** | **160 von 470 (34 %)** | | **Summe** | **55** | **698** | **655** | **35** | **8** | **553 von 698 (79 %)** | **304 von 698 (44 %)** | **160 von 470 (34 %)** |
### Legende ### Legende
@@ -36,7 +36,7 @@ Strukturelle Lücken (heuristisch, Namensabgleich): 160 von 470 (34 %) Funktione
## Paket `sn_basis` ## Paket `sn_basis`
Plattform-Plugin, Ordner `Plugin_SN_Basis` – 32 Testdateien mit 364 Testfällen (364 grün, 0 rot, 0 übersprungen). Plattform-Plugin, Ordner `Plugin_SN_Basis` – 32 Testdateien mit 365 Testfällen (365 grün, 0 rot, 0 übersprungen).
### `Plugin_SN_Basis/tests/test_base_dockwidget.py` ### `Plugin_SN_Basis/tests/test_base_dockwidget.py`
@@ -783,24 +783,25 @@ Worum es in der Datei geht: Tests für sn_basis/functions/verfahrensgebiet_manag
Testgruppen: Testgruppen:
- `TestVerfahrensgebietManager` (5 Testfälle): — (Docstring fehlt) - `TestVerfahrensgebietManager` (5 Testfälle): — (Docstring fehlt)
- `OnHandlerTests` (5 Testfälle): — (Docstring fehlt) - `OnHandlerTests` (6 Testfälle): — (Docstring fehlt)
- `ListenerSetupTests` (3 Testfälle): — (Docstring fehlt) - `ListenerSetupTests` (3 Testfälle): — (Docstring fehlt)
| Testfall | prüft | Status | geprüft | | Testfall | prüft | Status | geprüft |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| `TestVerfahrensgebietManager.test_get_verfahrensgebiet_layer_id_returns_value` | Prüft, dass get_verfahrensgebiet_layer_id() die in der Projektvariable gespeicherte Layer-ID liefert. | grün | nie geprüft | | `TestVerfahrensgebietManager.test_get_verfahrensgebiet_layer_id_returns_value` | Prüft, dass get_verfahrensgebiet_layer_id() die in der Projektvariable gespeicherte Layer-ID liefert. | grün | geprüft am 2026-10-26 |
| `TestVerfahrensgebietManager.test_get_verfahrensgebiet_layer_id_returns_none_for_empty_value` | Prüft, dass get_verfahrensgebiet_layer_id() bei leerer Projektvariable None statt eines leeren Strings liefert. | grün | nie geprüft | | `TestVerfahrensgebietManager.test_get_verfahrensgebiet_layer_id_returns_none_for_empty_value` | Prüft, dass get_verfahrensgebiet_layer_id() bei leerer Projektvariable None statt eines leeren Strings liefert. | grün | geprüft am 2026-10-26 |
| `TestVerfahrensgebietManager.test_set_verfahrensgebiet_layer_id_writes_project_variable` | Prüft, dass set_verfahrensgebiet_layer_id() die Layer-ID als Projektvariable 'verfahrensgebiet_layer' speichert. | grün | nie geprüft | | `TestVerfahrensgebietManager.test_set_verfahrensgebiet_layer_id_writes_project_variable` | Prüft, dass set_verfahrensgebiet_layer_id() die Layer-ID als Projektvariable 'verfahrensgebiet_layer' speichert. | grün | geprüft am 2026-10-26 |
| `TestVerfahrensgebietManager.test_update_without_layer_does_not_write_when_already_empty` | Prüft, dass ohne gefundenen Verfahrensgebiet-Layer keine Schreibaktion erfolgt, wenn die Variable bereits leer ist. | grün | nie geprüft | | `TestVerfahrensgebietManager.test_update_without_layer_does_not_write_when_already_empty` | Prüft, dass ohne gefundenen Verfahrensgebiet-Layer keine Schreibaktion erfolgt, wenn die Variable bereits leer ist. | grün | geprüft am 2026-10-26 |
| `TestVerfahrensgebietManager.test_update_with_layer_writes_variable` | Prüft, dass ein gefundener Verfahrensgebiet-Layer seine ID als Projektvariable speichert. | grün | nie geprüft | | `TestVerfahrensgebietManager.test_update_with_layer_writes_variable` | Prüft, dass ein gefundener Verfahrensgebiet-Layer seine ID als Projektvariable speichert. | grün | geprüft am 2026-10-26 |
| `OnHandlerTests.test_on_project_changed_ohne_layer_setzt_variable_leer` | Prüft, dass _on_project_changed die Variable leert, wenn kein Verfahrensgebiet-Layer existiert. | grün | nie geprüft | | `OnHandlerTests.test_on_project_changed_ohne_layer_setzt_variable_leer` | Prüft, dass _on_project_changed die Variable leert, wenn kein Verfahrensgebiet-Layer existiert. | grün | geprüft am 2026-10-26 |
| `OnHandlerTests.test_on_project_changed_mit_layer_setzt_variable` | Prüft, dass _on_project_changed die Layer-ID eines gefundenen Verfahrensgebiet-Layers übernimmt. | grün | nie geprüft | | `OnHandlerTests.test_on_project_changed_mit_layer_setzt_variable` | Prüft, dass _on_project_changed die Layer-ID eines gefundenen Verfahrensgebiet-Layers übernimmt. | grün | geprüft am 2026-10-26 |
| `OnHandlerTests.test_on_layers_added_findet_neuen_layer` | Prüft, dass _on_layers_added nach neu hinzugefügten Layern sucht und die Variable aktualisiert. | grün | nie geprüft | | `OnHandlerTests.test_on_layers_added_findet_neuen_layer` | Prüft, dass _on_layers_added projektweit nach einem Layer namens „Verfahrensgebiet" sucht und die Variable aktualisiert. | grün | geprüft am 2026-10-26 |
| `OnHandlerTests.test_on_layer_removed_bei_aktuellem_layer_sucht_neu` | Prüft, dass das Entfernen des aktuell aktiven Verfahrensgebiet-Layers eine Neusuche auslöst. | grün | nie geprüft | | `OnHandlerTests.test_on_layers_added_setzt_manuelle_auswahl_derzeit_zurueck` | Prüft, dass _on_layers_added derzeit eine manuelle Auswahl eines anders benannten Layers auf leer zurücksetzt (Ist-Zustand, nicht bestätigt gewünscht). | grün | geprüft am 2026-10-26 |
| `OnHandlerTests.test_on_layer_removed_bei_anderem_layer_aendert_nichts` | Prüft, dass das Entfernen eines anderen Layers keine Neusuche auslöst. | grün | nie geprüft | | `OnHandlerTests.test_on_layer_removed_bei_aktuellem_layer_sucht_neu` | Prüft, dass das Entfernen des aktuell aktiven Verfahrensgebiet-Layers eine Neusuche auslöst. | grün | geprüft am 2026-10-26 |
| `ListenerSetupTests.test_setup_ohne_qgis_tut_nichts` | Prüft, dass setup_verfahrensgebiet_listener ohne QGIS keine Signale registriert. | grün | nie geprüft | | `OnHandlerTests.test_on_layer_removed_bei_anderem_layer_aendert_nichts` | Prüft, dass das Entfernen eines anderen Layers keine Neusuche auslöst. | grün | geprüft am 2026-10-26 |
| `ListenerSetupTests.test_setup_verbindet_signale_und_ist_idempotent` | Prüft, dass setup_verfahrensgebiet_listener die Projektsignale verbindet und ein zweiter Aufruf nichts doppelt registriert. | grün | nie geprüft | | `ListenerSetupTests.test_setup_ohne_qgis_tut_nichts` | Prüft, dass setup_verfahrensgebiet_listener ohne QGIS keine Signale registriert. | grün | geprüft am 2026-10-26 |
| `ListenerSetupTests.test_teardown_trennt_alle_signale_und_ist_idempotent` | Prüft, dass teardown_verfahrensgebiet_listener alle Signale trennt und mehrfacher Aufruf nicht fehlschlägt. | grün | nie geprüft | | `ListenerSetupTests.test_setup_verbindet_signale_und_ist_idempotent` | Prüft, dass setup_verfahrensgebiet_listener alle fünf Projektsignale verbindet und ein zweiter Aufruf nichts doppelt registriert. | grün | geprüft am 2026-10-26 |
| `ListenerSetupTests.test_teardown_trennt_alle_signale_und_ist_idempotent` | Prüft, dass teardown_verfahrensgebiet_listener alle fünf Signale trennt und mehrfacher Aufruf nicht fehlschlägt. | grün | geprüft am 2026-10-26 |
## Paket `sn_verfahrensgebiet` ## Paket `sn_verfahrensgebiet`
@@ -1450,7 +1451,7 @@ Arbeitsliste: Diese Testfälle haben keinen Docstring; was sie fachlich prüfen,
aus dem Quelltext erschließen. Jeder Eintrag braucht eine einzeilige Beschreibung im Testfall, aus dem Quelltext erschließen. Jeder Eintrag braucht eine einzeilige Beschreibung im Testfall,
dann verschwindet er hier von selbst. dann verschwindet er hier von selbst.
### `sn_basis` – 0 von 364 Testfällen ohne Beschreibung ### `sn_basis` – 0 von 365 Testfällen ohne Beschreibung
Keine Lücken. Keine Lücken.