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:
@@ -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"
|
||||||
|
|||||||
+14
-12
File diff suppressed because one or more lines are too long
+22
-21
@@ -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.
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user