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

13 Testfälle nach Freigabe als geprüft markiert: test_qgisui_wrapper_helpers.py komplett
(12 bestehende, davon 1 geschärft, und 1 neuer für remove_menu ohne menuAction).
Nebenbefund (Datenschreiber wertet den Rückgabewert von add_layer_to_project nicht aus,
Docstring der Funktion widersprüchlich) als 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:13:17 +01:00
co-authored by Claude Opus 5.5
parent e9549a1d88
commit 8563a95ded
3 changed files with 88 additions and 33 deletions
+52
View File
@@ -939,6 +939,58 @@
"datum": "2026-10-26", "datum": "2026-10-26",
"hash": "31469cdffcd8" "hash": "31469cdffcd8"
}, },
"sn_basis.tests.test_qgisui_wrapper_helpers.AddLayerToProjectTests.test_mit_qgis_fehler_liefert_false": {
"datum": "2026-10-26",
"hash": "55aecee5ebca"
},
"sn_basis.tests.test_qgisui_wrapper_helpers.AddLayerToProjectTests.test_mit_qgis_fuegt_layer_dem_projekt_hinzu": {
"datum": "2026-10-26",
"hash": "9ce36a9cc9bf"
},
"sn_basis.tests.test_qgisui_wrapper_helpers.AddLayerToProjectTests.test_mock_modus_liefert_true_ohne_projektzugriff": {
"datum": "2026-10-26",
"hash": "78e47a3cb3fd"
},
"sn_basis.tests.test_qgisui_wrapper_helpers.AddLayerToProjectTests.test_none_layer_liefert_false": {
"datum": "2026-10-26",
"hash": "693286e3baed"
},
"sn_basis.tests.test_qgisui_wrapper_helpers.AddRemoveMenuTests.test_add_menu_mit_echtem_qt_menu_fuegt_es_der_menubar_hinzu": {
"datum": "2026-10-26",
"hash": "bcd536417956"
},
"sn_basis.tests.test_qgisui_wrapper_helpers.AddRemoveMenuTests.test_add_menu_ohne_main_window_tut_nichts": {
"datum": "2026-10-26",
"hash": "3b88d5079949"
},
"sn_basis.tests.test_qgisui_wrapper_helpers.AddRemoveMenuTests.test_add_menu_ohne_menuaction_wird_ignoriert": {
"datum": "2026-10-26",
"hash": "d36b4a5d68b2"
},
"sn_basis.tests.test_qgisui_wrapper_helpers.AddRemoveMenuTests.test_remove_menu_entfernt_ueber_menuaction": {
"datum": "2026-10-26",
"hash": "63e933a68605"
},
"sn_basis.tests.test_qgisui_wrapper_helpers.AddRemoveMenuTests.test_remove_menu_ohne_main_window_tut_nichts": {
"datum": "2026-10-26",
"hash": "45a66a6428d1"
},
"sn_basis.tests.test_qgisui_wrapper_helpers.AddRemoveMenuTests.test_remove_menu_ohne_menuaction_wird_ignoriert": {
"datum": "2026-10-26",
"hash": "63226989dbbd"
},
"sn_basis.tests.test_qgisui_wrapper_helpers.FindDockWidgetsTests.test_fehler_beim_suchen_liefert_leere_liste": {
"datum": "2026-10-26",
"hash": "ef90c33c07dc"
},
"sn_basis.tests.test_qgisui_wrapper_helpers.FindDockWidgetsTests.test_liefert_dock_widgets_des_main_window": {
"datum": "2026-10-26",
"hash": "cc4fdc88ea7c"
},
"sn_basis.tests.test_qgisui_wrapper_helpers.FindDockWidgetsTests.test_ohne_main_window_liefert_leere_liste": {
"datum": "2026-10-26",
"hash": "0065353ce6d8"
},
"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
+22 -21
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 `b2525df27b91`) Stand des Prüf-Audits: `docs/status/testpruefungen.json` (SHA-256 `7df562788eb6`)
Gesamt: 3 Pakete, 55 Testdateien, 689 Testfälle – 646 grün, 35 rot (Baseline), 8 übersprungen. Gesamt: 3 Pakete, 55 Testdateien, 690 Testfälle – 647 grün, 35 rot (Baseline), 8 übersprungen.
Mit Beschreibung (Docstring): 544 von 689 (79 %). Mit Beschreibung (Docstring): 545 von 690 (79 %).
Fachlich geprüft: 244 von 689 (35 %) aktuell, 0 veraltet seit Codeänderung, 445 nie geprüft. Fachlich geprüft: 257 von 690 (37 %) aktuell, 0 veraltet seit Codeänderung, 433 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 | 356 | 356 | 0 | 0 | 356 von 356 (100 %) | 244 von 356 (69 %) | 70 von 229 (31 %) | | `sn_basis` | 32 | 357 | 357 | 0 | 0 | 357 von 357 (100 %) | 257 von 357 (72 %) | 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** | **689** | **646** | **35** | **8** | **544 von 689 (79 %)** | **244 von 689 (35 %)** | **160 von 470 (34 %)** | | **Summe** | **55** | **690** | **647** | **35** | **8** | **545 von 690 (79 %)** | **257 von 690 (37 %)** | **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 356 Testfällen (356 grün, 0 rot, 0 übersprungen). Plattform-Plugin, Ordner `Plugin_SN_Basis` – 32 Testdateien mit 357 Testfällen (357 grün, 0 rot, 0 übersprungen).
### `Plugin_SN_Basis/tests/test_base_dockwidget.py` ### `Plugin_SN_Basis/tests/test_base_dockwidget.py`
@@ -644,22 +644,23 @@ Testgruppen:
- `AddLayerToProjectTests` (4 Testfälle): — (Docstring fehlt) - `AddLayerToProjectTests` (4 Testfälle): — (Docstring fehlt)
- `FindDockWidgetsTests` (3 Testfälle): — (Docstring fehlt) - `FindDockWidgetsTests` (3 Testfälle): — (Docstring fehlt)
- `AddRemoveMenuTests` (5 Testfälle): — (Docstring fehlt) - `AddRemoveMenuTests` (6 Testfälle): — (Docstring fehlt)
| Testfall | prüft | Status | geprüft | | Testfall | prüft | Status | geprüft |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| `AddLayerToProjectTests.test_none_layer_liefert_false` | Prüft, dass add_layer_to_project für einen fehlenden Layer (None) False liefert. | grün | nie geprüft | | `AddLayerToProjectTests.test_none_layer_liefert_false` | Prüft, dass add_layer_to_project für einen fehlenden Layer (None) False liefert. | grün | geprüft am 2026-10-26 |
| `AddLayerToProjectTests.test_mock_modus_liefert_true_ohne_projektzugriff` | Prüft, dass im Mock-Modus (ohne QGIS) ein gültiger Layer True liefert, ohne das Projekt anzufassen. | grün | nie geprüft | | `AddLayerToProjectTests.test_mock_modus_liefert_true_ohne_projektzugriff` | Prüft, dass im Mock-Modus (ohne QGIS) ein gültiger Layer True liefert, ohne das Projekt anzufassen. | grün | geprüft am 2026-10-26 |
| `AddLayerToProjectTests.test_mit_qgis_fuegt_layer_dem_projekt_hinzu` | Prüft, dass bei verfügbarem QGIS der Layer über QgsProject.instance().addMapLayer hinzugefügt wird. | grün | nie geprüft | | `AddLayerToProjectTests.test_mit_qgis_fuegt_layer_dem_projekt_hinzu` | Prüft, dass bei verfügbarem QGIS der Layer über QgsProject.instance().addMapLayer hinzugefügt wird. | grün | geprüft am 2026-10-26 |
| `AddLayerToProjectTests.test_mit_qgis_fehler_liefert_false` | Prüft, dass ein Fehler beim Hinzufügen zum Projekt abgefangen wird und False liefert. | grün | nie geprüft | | `AddLayerToProjectTests.test_mit_qgis_fehler_liefert_false` | Prüft, dass ein Fehler beim Hinzufügen zum Projekt abgefangen wird und False liefert. | grün | geprüft am 2026-10-26 |
| `FindDockWidgetsTests.test_ohne_main_window_liefert_leere_liste` | Prüft, dass find_dock_widgets ohne verfügbares Hauptfenster eine leere Liste liefert. | grün | nie geprüft | | `FindDockWidgetsTests.test_ohne_main_window_liefert_leere_liste` | Prüft, dass find_dock_widgets ohne verfügbares Hauptfenster eine leere Liste liefert. | grün | geprüft am 2026-10-26 |
| `FindDockWidgetsTests.test_liefert_dock_widgets_des_main_window` | Prüft, dass find_dock_widgets die vom Hauptfenster gefundenen Dock-Widgets durchreicht. | grün | nie geprüft | | `FindDockWidgetsTests.test_liefert_dock_widgets_des_main_window` | Prüft, dass find_dock_widgets im Hauptfenster nach QDockWidget sucht und die Treffer durchreicht. | grün | geprüft am 2026-10-26 |
| `FindDockWidgetsTests.test_fehler_beim_suchen_liefert_leere_liste` | Prüft, dass ein Fehler beim Suchen der Dock-Widgets abgefangen wird und eine leere Liste liefert. | grün | nie geprüft | | `FindDockWidgetsTests.test_fehler_beim_suchen_liefert_leere_liste` | Prüft, dass ein Fehler beim Suchen der Dock-Widgets abgefangen wird und eine leere Liste liefert. | grün | geprüft am 2026-10-26 |
| `AddRemoveMenuTests.test_add_menu_ohne_main_window_tut_nichts` | Prüft, dass add_menu ohne Hauptfenster keine Ausnahme wirft. | grün | nie geprüft | | `AddRemoveMenuTests.test_add_menu_ohne_main_window_tut_nichts` | Prüft, dass add_menu ohne Hauptfenster keine Ausnahme wirft. | grün | geprüft am 2026-10-26 |
| `AddRemoveMenuTests.test_add_menu_mit_echtem_qt_menu_fuegt_es_der_menubar_hinzu` | Prüft, dass ein echtes Qt-Menü (mit menuAction) der Menüleiste hinzugefügt wird. | grün | nie geprüft | | `AddRemoveMenuTests.test_add_menu_mit_echtem_qt_menu_fuegt_es_der_menubar_hinzu` | Prüft, dass ein echtes Qt-Menü (mit menuAction) der Menüleiste hinzugefügt wird. | grün | geprüft am 2026-10-26 |
| `AddRemoveMenuTests.test_add_menu_ohne_menuaction_wird_ignoriert` | Prüft, dass ein Objekt ohne menuAction nicht an die Menüleiste übergeben wird. | grün | nie geprüft | | `AddRemoveMenuTests.test_add_menu_ohne_menuaction_wird_ignoriert` | Prüft, dass ein Objekt ohne menuAction nicht an die Menüleiste übergeben wird. | grün | geprüft am 2026-10-26 |
| `AddRemoveMenuTests.test_remove_menu_entfernt_ueber_menuaction` | Prüft, dass remove_menu das Menü über dessen menuAction() aus der Menüleiste entfernt. | grün | nie geprüft | | `AddRemoveMenuTests.test_remove_menu_entfernt_ueber_menuaction` | Prüft, dass remove_menu das Menü über dessen menuAction() aus der Menüleiste entfernt. | grün | geprüft am 2026-10-26 |
| `AddRemoveMenuTests.test_remove_menu_ohne_main_window_tut_nichts` | Prüft, dass remove_menu ohne Hauptfenster keine Ausnahme wirft. | grün | nie geprüft | | `AddRemoveMenuTests.test_remove_menu_ohne_menuaction_wird_ignoriert` | Prüft, dass remove_menu ein Objekt ohne menuAction nicht aus der Menüleiste zu entfernen versucht. | grün | geprüft am 2026-10-26 |
| `AddRemoveMenuTests.test_remove_menu_ohne_main_window_tut_nichts` | Prüft, dass remove_menu ohne Hauptfenster keine Ausnahme wirft. | grün | geprüft am 2026-10-26 |
### `Plugin_SN_Basis/tests/test_settings_logic.py` ### `Plugin_SN_Basis/tests/test_settings_logic.py`
@@ -1441,7 +1442,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 356 Testfällen ohne Beschreibung ### `sn_basis` – 0 von 357 Testfällen ohne Beschreibung
Keine Lücken. Keine Lücken.