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

10 Testfälle nach Freigabe als geprüft markiert: test_sys_wrapper.py komplett
(5 bisher ungeprüfte, davon 1 geschärft, und 5 neue für file_exists und getattr_safe;
get_plugin_root war bereits am 17.09.2026 geprüft). Ein neuer Test hält den Ist-Zustand
fest, dass file_exists auch Verzeichnisse als vorhanden meldet; dazu Issue-Entwurf
„file_exists: Verzeichnis gilt als vorhandene Datei" vorbereitet.

Testkatalog neu erzeugt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-26 20:25:54 +01:00
co-authored by Claude Opus 5.5
parent c7ecd14d64
commit 04b3657dfe
3 changed files with 88 additions and 30 deletions
+40
View File
@@ -1059,6 +1059,46 @@
"datum": "2026-09-17",
"hash": "7a3d7bd800c3"
},
"sn_basis.tests.test_sys_wrapper.EnsureDirTests.test_legt_fehlendes_verzeichnis_inklusive_eltern_an": {
"datum": "2026-10-26",
"hash": "dada5d5e45b9"
},
"sn_basis.tests.test_sys_wrapper.EnsureDirTests.test_vorhandenes_verzeichnis_wirft_keinen_fehler": {
"datum": "2026-10-26",
"hash": "923d99e4edf3"
},
"sn_basis.tests.test_sys_wrapper.FileExistsTests.test_fehlende_datei_liefert_false": {
"datum": "2026-10-26",
"hash": "455c81b667df"
},
"sn_basis.tests.test_sys_wrapper.FileExistsTests.test_ungueltiger_pfad_liefert_false_statt_ausnahme": {
"datum": "2026-10-26",
"hash": "b2baf1004522"
},
"sn_basis.tests.test_sys_wrapper.FileExistsTests.test_verzeichnis_gilt_derzeit_als_vorhandene_datei": {
"datum": "2026-10-26",
"hash": "8e791a249d44"
},
"sn_basis.tests.test_sys_wrapper.FileExistsTests.test_vorhandene_datei_liefert_true": {
"datum": "2026-10-26",
"hash": "914d1ed618fd"
},
"sn_basis.tests.test_sys_wrapper.GetattrSafeTests.test_liefert_default_bei_fehlendem_attribut": {
"datum": "2026-10-26",
"hash": "bfcc23ca76f3"
},
"sn_basis.tests.test_sys_wrapper.GetattrSafeTests.test_liefert_default_wenn_attributzugriff_andere_ausnahme_wirft": {
"datum": "2026-10-26",
"hash": "6a2e61b48bbc"
},
"sn_basis.tests.test_sys_wrapper.GetattrSafeTests.test_liefert_vorhandenes_attribut": {
"datum": "2026-10-26",
"hash": "1ab2ddfc9d4f"
},
"sn_basis.tests.test_sys_wrapper.JoinPathTests.test_verbindet_mehrere_pfadbestandteile": {
"datum": "2026-10-26",
"hash": "5954b3f27357"
},
"sn_basis.tests.test_sys_wrapper.TestGetPluginRoot.test_get_plugin_root_folgt_keiner_verzeichnisverknuepfung": {
"datum": "2026-09-17",
"hash": "c9b434520d62"
File diff suppressed because one or more lines are too long
+20 -14
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 `119f79e142a0`)
Stand des Prüf-Audits: `docs/status/testpruefungen.json` (SHA-256 `925d01586dbc`)
Gesamt: 3 Pakete, 55 Testdateien, 691 Testfälle – 648 grün, 35 rot (Baseline), 8 übersprungen.
Mit Beschreibung (Docstring): 546 von 691 (79 %).
Fachlich geprüft: 266 von 691 (38 %) aktuell, 0 veraltet seit Codeänderung, 425 nie geprüft.
Gesamt: 3 Pakete, 55 Testdateien, 696 Testfälle – 653 grün, 35 rot (Baseline), 8 übersprungen.
Mit Beschreibung (Docstring): 551 von 696 (79 %).
Fachlich geprüft: 276 von 696 (40 %) aktuell, 0 veraltet seit Codeänderung, 420 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 | 358 | 358 | 0 | 0 | 358 von 358 (100 %) | 266 von 358 (74 %) | 70 von 229 (31 %) |
| `sn_basis` | 32 | 363 | 363 | 0 | 0 | 363 von 363 (100 %) | 276 von 363 (76 %) | 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** | **691** | **648** | **35** | **8** | **546 von 691 (79 %)** | **266 von 691 (38 %)** | **160 von 470 (34 %)** |
| **Summe** | **55** | **696** | **653** | **35** | **8** | **551 von 696 (79 %)** | **276 von 696 (40 %)** | **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 358 Testfällen (358 grün, 0 rot, 0 übersprungen).
Plattform-Plugin, Ordner `Plugin_SN_Basis` – 32 Testdateien mit 363 Testfällen (363 grün, 0 rot, 0 übersprungen).
### `Plugin_SN_Basis/tests/test_base_dockwidget.py`
@@ -722,17 +722,23 @@ Testgruppen:
- `TestGetPluginRoot` (1 Testfälle): — (Docstring fehlt)
- `JoinPathTests` (1 Testfälle): — (Docstring fehlt)
- `FileExistsTests` (4 Testfälle): — (Docstring fehlt)
- `EnsureDirTests` (2 Testfälle): — (Docstring fehlt)
- `GetattrSafeTests` (2 Testfälle): — (Docstring fehlt)
- `GetattrSafeTests` (3 Testfälle): — (Docstring fehlt)
| Testfall | prüft | Status | geprüft |
| --- | --- | --- | --- |
| `TestGetPluginRoot.test_get_plugin_root_folgt_keiner_verzeichnisverknuepfung` | Prüft, dass get_plugin_root() bei einem über eine Verzeichnisverknüpfung (wie von link_qgis_profile.py angelegt) erreichten Modul den verlinkten Pfad liefert, statt zum echten Zielverzeichnis aufzulösen (Verfahrensgebiet #50). | grün | geprüft am 2026-09-17 |
| `JoinPathTests.test_verbindet_mehrere_pfadbestandteile` | Prüft, dass join_path mehrere Bestandteile OS-sicher zu einem Path zusammenfügt. | grün | nie geprüft |
| `EnsureDirTests.test_legt_fehlendes_verzeichnis_inklusive_eltern_an` | Prüft, dass ensure_dir ein fehlendes Verzeichnis samt Elternverzeichnissen anlegt. | grün | nie geprüft |
| `EnsureDirTests.test_vorhandenes_verzeichnis_wirft_keinen_fehler` | Prüft, dass ensure_dir bei einem bereits vorhandenen Verzeichnis keinen Fehler wirft. | grün | nie geprüft |
| `GetattrSafeTests.test_liefert_vorhandenes_attribut` | Prüft, dass getattr_safe ein vorhandenes Attribut liefert. | grün | nie geprüft |
| `GetattrSafeTests.test_liefert_default_bei_fehlendem_attribut` | Prüft, dass getattr_safe bei fehlendem Attribut den Default-Wert liefert. | grün | nie geprüft |
| `JoinPathTests.test_verbindet_mehrere_pfadbestandteile` | Prüft, dass join_path mehrere Bestandteile OS-sicher zu einem Path zusammenfügt. | grün | geprüft am 2026-10-26 |
| `FileExistsTests.test_vorhandene_datei_liefert_true` | Prüft, dass file_exists für eine vorhandene Datei True liefert. | grün | geprüft am 2026-10-26 |
| `FileExistsTests.test_fehlende_datei_liefert_false` | Prüft, dass file_exists für eine nicht vorhandene Datei False liefert. | grün | geprüft am 2026-10-26 |
| `FileExistsTests.test_ungueltiger_pfad_liefert_false_statt_ausnahme` | Prüft, dass file_exists für einen ungültigen Pfad (Nullzeichen) False liefert, statt eine Ausnahme zu werfen. | grün | geprüft am 2026-10-26 |
| `FileExistsTests.test_verzeichnis_gilt_derzeit_als_vorhandene_datei` | Prüft, dass file_exists derzeit auch für ein Verzeichnis True liefert (Ist-Zustand, nicht bestätigt gewünscht). | grün | geprüft am 2026-10-26 |
| `EnsureDirTests.test_legt_fehlendes_verzeichnis_inklusive_eltern_an` | Prüft, dass ensure_dir ein fehlendes Verzeichnis samt Elternverzeichnissen anlegt. | grün | geprüft am 2026-10-26 |
| `EnsureDirTests.test_vorhandenes_verzeichnis_wirft_keinen_fehler` | Prüft, dass ensure_dir bei einem bereits vorhandenen Verzeichnis keinen Fehler wirft und den Pfad liefert. | grün | geprüft am 2026-10-26 |
| `GetattrSafeTests.test_liefert_vorhandenes_attribut` | Prüft, dass getattr_safe ein vorhandenes Attribut liefert. | grün | geprüft am 2026-10-26 |
| `GetattrSafeTests.test_liefert_default_bei_fehlendem_attribut` | Prüft, dass getattr_safe bei fehlendem Attribut den Default-Wert liefert. | grün | geprüft am 2026-10-26 |
| `GetattrSafeTests.test_liefert_default_wenn_attributzugriff_andere_ausnahme_wirft` | Prüft, dass getattr_safe auch bei einer anderen Ausnahme als AttributeError den Default-Wert liefert. | grün | geprüft am 2026-10-26 |
### `Plugin_SN_Basis/tests/test_text_wrapper.py`
@@ -1443,7 +1449,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 358 Testfällen ohne Beschreibung
### `sn_basis` – 0 von 363 Testfällen ohne Beschreibung
Keine Lücken.