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": {
"datum": "2026-10-26",
"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.
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.
Mit Beschreibung (Docstring): 552 von 697 (79 %).
Fachlich geprüft: 290 von 697 (42 %) aktuell, 0 veraltet seit Codeänderung, 407 nie geprüft.
Gesamt: 3 Pakete, 55 Testdateien, 698 Testfälle – 655 grün, 35 rot (Baseline), 8 übersprungen.
Mit Beschreibung (Docstring): 553 von 698 (79 %).
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“.
## Zusammenfassung
| 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_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
@@ -36,7 +36,7 @@ Strukturelle Lücken (heuristisch, Namensabgleich): 160 von 470 (34 %) Funktione
## 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`
@@ -783,24 +783,25 @@ Worum es in der Datei geht: Tests für sn_basis/functions/verfahrensgebiet_manag
Testgruppen:
- `TestVerfahrensgebietManager` (5 Testfälle): — (Docstring fehlt)
- `OnHandlerTests` (5 Testfälle): — (Docstring fehlt)
- `OnHandlerTests` (6 Testfälle): — (Docstring fehlt)
- `ListenerSetupTests` (3 Testfälle): — (Docstring fehlt)
| 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_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_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_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_with_layer_writes_variable` | Prüft, dass ein gefundener Verfahrensgebiet-Layer seine ID als Projektvariable speichert. | 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 | 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 | nie geprüft |
| `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_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_layer_removed_bei_anderem_layer_aendert_nichts` | Prüft, dass das Entfernen eines anderen Layers keine Neusuche auslöst. | 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 | nie geprüft |
| `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_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 |
| `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 | 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 | 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 | 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 | 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 | 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 | geprüft am 2026-10-26 |
| `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_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_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 |
| `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_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_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`
@@ -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,
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.