From e747b2227bc986f9121287c0380d4073e72d7b28 Mon Sep 17 00:00:00 2001 From: Daniel Date: Wed, 23 Sep 2026 09:23:55 +0200 Subject: [PATCH] =?UTF-8?q?Test-Audit=20sn=5Fbasis=20fortgesetzt:=20ly=5Fs?= =?UTF-8?q?tyle=5Fwrapper.py=20fachlich=20gepr=C3=BCft=20(#76)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 5 Testfälle fachlich geprüft und markiert: test_ly_style_wrapper.py komplett (inkl. 1 neuer Test für die Pfadübergabe). Nebenbefunde: Debug-print() in apply_style als Kommentar zu #79 vorbereitet; ungültige Layer in apply_style/apply_style_from_path im Code mit Verweis auf #84 markiert. Nachtrag zum vorigen Audit-Commit: die dort vorbereiteten Issues sind #84 (layer_is_valid/layer_is_usable) und #85 (Layerpruefer). Testkatalog neu erzeugt. Co-Authored-By: Claude Opus 5.5 --- docs/status/testpruefungen.json | 20 ++++++++++++++++++++ docs/tests/testkatalog.html | 28 +++++++++++++++------------- docs/tests/testkatalog.md | 27 ++++++++++++++------------- 3 files changed, 49 insertions(+), 26 deletions(-) diff --git a/docs/status/testpruefungen.json b/docs/status/testpruefungen.json index 730b3a5..2efc950 100644 --- a/docs/status/testpruefungen.json +++ b/docs/status/testpruefungen.json @@ -591,6 +591,26 @@ "datum": "2026-09-23", "hash": "8c70103cdd59" }, + "sn_basis.tests.test_ly_style_wrapper.ApplyStyleFromPathTests.test_ausnahme_beim_laden_wird_abgefangen": { + "datum": "2026-09-23", + "hash": "9f7b05ef45e3" + }, + "sn_basis.tests.test_ly_style_wrapper.ApplyStyleFromPathTests.test_erfolgreiches_laden_liefert_true_und_triggert_repaint": { + "datum": "2026-09-23", + "hash": "bd86c7e8e769" + }, + "sn_basis.tests.test_ly_style_wrapper.ApplyStyleFromPathTests.test_fehlender_layer_liefert_false": { + "datum": "2026-09-23", + "hash": "3ff023bcd0f7" + }, + "sn_basis.tests.test_ly_style_wrapper.ApplyStyleFromPathTests.test_fehlgeschlagenes_laden_liefert_false_ohne_repaint": { + "datum": "2026-09-23", + "hash": "c1f4a7972411" + }, + "sn_basis.tests.test_ly_style_wrapper.ApplyStyleFromPathTests.test_pfad_wird_als_text_an_loadnamedstyle_uebergeben": { + "datum": "2026-09-23", + "hash": "83fd0b51b9df" + }, "sn_basis.tests.test_pruefmanager.TestPruefmanager.test_datei_existiert_append": { "datum": "2026-09-17", "hash": "25e169c45423" diff --git a/docs/tests/testkatalog.html b/docs/tests/testkatalog.html index e9458cc..17ac009 100644 --- a/docs/tests/testkatalog.html +++ b/docs/tests/testkatalog.html @@ -123,24 +123,24 @@

Prüfstand

Testkatalog der sn_*-Plugins — was die Suite heute prüft, auf einen Blick.
-
Quelle: docs/tests/testkatalog.md
Baseline: docs/status/testbaseline.json (SHA-256 aeabc946a7f3)
Prüf-Audit: docs/status/testpruefungen.json (SHA-256 4d0c4430fa9f)
+
Quelle: docs/tests/testkatalog.md
Baseline: docs/status/testbaseline.json (SHA-256 aeabc946a7f3)
Prüf-Audit: docs/status/testpruefungen.json (SHA-256 86bcb6ced85a)
-
595Testfälle
-
552grün
+
596Testfälle
+
553grün
35rot (Baseline)
76%mit Docstring
-
29%aktuell geprüft
+
30%aktuell geprüft
49Testdateien
35%ohne Testbezug
Verteilung je Paket
-
sn_basis32 Dateien · 343 Testfälle
+
sn_basis32 Dateien · 344 Testfälle
sn_verfahrensgebiet12 Dateien · 208 Testfälle
sn_plan415 Dateien · 44 Testfälle
@@ -159,11 +159,11 @@

sn_basis

Plattform-Plugin · Ordner Plugin_SN_Basis

- -
32Testdateien
343Testfälle
343grün
0rot (Baseline)
100%mit Docstring
50%geprüft
72ohne Testbezug
+
32Testdateien
344Testfälle
344grün
0rot (Baseline)
100%mit Docstring
51%geprüft
72ohne Testbezug

Tests für sn_basis/ui/base_dockwidget.py::closeEvent (Issue #65).

CloseEventTests 5
flowchart TD
   root(["test_base_dockwidget.py"])
   class root rootnode
@@ -627,24 +627,26 @@
   classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
   classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
   classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
-  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
LayerExistsTests
test_none_existiert_nicht
Prüft, dass layer_exists für None False liefert.grüngeprüft am 2026-09-23
LayerExistsTests
test_vorhandenes_objekt_existiert
Prüft, dass layer_exists für ein vorhandenes Layer-Objekt True liefert.grüngeprüft am 2026-09-23
LayerExistsTests
test_ungueltiger_layer_existiert_trotzdem
Prüft, dass layer_exists die Gültigkeit nicht bewertet: ein ungültiger Layer gilt als vorhanden.grüngeprüft am 2026-09-23
LayerIsValidTests
test_none_ist_nicht_gueltig
Prüft, dass layer_is_valid für None False liefert.grüngeprüft am 2026-09-23
LayerIsValidTests
test_objekt_ohne_isvalid_ist_nicht_gueltig
Prüft, dass ein Objekt ohne isValid()-Methode als ungültig gilt.grüngeprüft am 2026-09-23
LayerIsValidTests
test_gueltiger_layer_liefert_true
Prüft, dass ein Layer mit isValid()==True als gültig erkannt wird.grüngeprüft am 2026-09-23
LayerIsValidTests
test_ungueltiger_layer_liefert_false
Prüft, dass ein Layer mit isValid()==False als ungültig erkannt wird.grüngeprüft am 2026-09-23
LayerIsValidTests
test_ausnahme_bei_isvalid_liefert_false
Prüft, dass eine Ausnahme in isValid() abgefangen wird und False liefert.grüngeprüft am 2026-09-23
LayerIsUsableTests
test_none_ist_nicht_nutzbar
Prüft, dass layer_is_usable für None False liefert.grüngeprüft am 2026-09-23
LayerIsUsableTests
test_gueltiger_layer_ist_nutzbar
Prüft, dass ein vorhandener, gültiger Layer als nutzbar gilt.grüngeprüft am 2026-09-23
LayerIsUsableTests
test_ungueltiger_layer_ist_nicht_nutzbar
Prüft, dass ein vorhandener, aber ungültiger Layer als nicht nutzbar gilt.grüngeprüft am 2026-09-23

Tests für sn_basis/functions/ly_style_wrapper.py::apply_style_from_path (Issue #65).

ApplyStyleFromPathTests 4
flowchart TD
+  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
LayerExistsTests
test_none_existiert_nicht
Prüft, dass layer_exists für None False liefert.grüngeprüft am 2026-09-23
LayerExistsTests
test_vorhandenes_objekt_existiert
Prüft, dass layer_exists für ein vorhandenes Layer-Objekt True liefert.grüngeprüft am 2026-09-23
LayerExistsTests
test_ungueltiger_layer_existiert_trotzdem
Prüft, dass layer_exists die Gültigkeit nicht bewertet: ein ungültiger Layer gilt als vorhanden.grüngeprüft am 2026-09-23
LayerIsValidTests
test_none_ist_nicht_gueltig
Prüft, dass layer_is_valid für None False liefert.grüngeprüft am 2026-09-23
LayerIsValidTests
test_objekt_ohne_isvalid_ist_nicht_gueltig
Prüft, dass ein Objekt ohne isValid()-Methode als ungültig gilt.grüngeprüft am 2026-09-23
LayerIsValidTests
test_gueltiger_layer_liefert_true
Prüft, dass ein Layer mit isValid()==True als gültig erkannt wird.grüngeprüft am 2026-09-23
LayerIsValidTests
test_ungueltiger_layer_liefert_false
Prüft, dass ein Layer mit isValid()==False als ungültig erkannt wird.grüngeprüft am 2026-09-23
LayerIsValidTests
test_ausnahme_bei_isvalid_liefert_false
Prüft, dass eine Ausnahme in isValid() abgefangen wird und False liefert.grüngeprüft am 2026-09-23
LayerIsUsableTests
test_none_ist_nicht_nutzbar
Prüft, dass layer_is_usable für None False liefert.grüngeprüft am 2026-09-23
LayerIsUsableTests
test_gueltiger_layer_ist_nutzbar
Prüft, dass ein vorhandener, gültiger Layer als nutzbar gilt.grüngeprüft am 2026-09-23
LayerIsUsableTests
test_ungueltiger_layer_ist_nicht_nutzbar
Prüft, dass ein vorhandener, aber ungültiger Layer als nicht nutzbar gilt.grüngeprüft am 2026-09-23

Tests für sn_basis/functions/ly_style_wrapper.py::apply_style_from_path (Issue #65).

ApplyStyleFromPathTests 5
flowchart TD
   root(["test_ly_style_wrapper.py"])
   class root rootnode
-  root --> g1["ApplyStyleFromPathTests (4)"]
+  root --> g1["ApplyStyleFromPathTests (5)"]
   class g1 groupnode
   g1 --> t1("fehlender_layer_liefert_false")
   g1 --> t2("erfolgreiches_laden_liefert_true_und_triggert_repaint")
-  g1 --> t3("fehlgeschlagenes_laden_liefert_false_ohne_repaint")
-  g1 --> t4("ausnahme_beim_laden_wird_abgefangen")
+  g1 --> t3("pfad_wird_als_text_an_loadnamedstyle_uebergeben")
+  g1 --> t4("fehlgeschlagenes_laden_liefert_false_ohne_repaint")
+  g1 --> t5("ausnahme_beim_laden_wird_abgefangen")
   class t1 ok
   class t2 ok
   class t3 ok
   class t4 ok
+  class t5 ok
   classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
   classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
   classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
   classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
-  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
ApplyStyleFromPathTests
test_fehlender_layer_liefert_false
Prüft, dass ein fehlender Layer (None) False liefert, ohne einen Stil zu laden.grünnie geprüft
ApplyStyleFromPathTests
test_erfolgreiches_laden_liefert_true_und_triggert_repaint
Prüft, dass ein erfolgreich geladener Stil True liefert und den Layer neu zeichnet.grünnie geprüft
ApplyStyleFromPathTests
test_fehlgeschlagenes_laden_liefert_false_ohne_repaint
Prüft, dass ein fehlgeschlagenes Laden False liefert, ohne den Layer neu zu zeichnen.grünnie geprüft
ApplyStyleFromPathTests
test_ausnahme_beim_laden_wird_abgefangen
Prüft, dass eine Ausnahme beim Laden des Stils abgefangen wird und False liefert.grünnie geprüft

Tests für sn_basis/functions/message_wrapper.py (Issue #65).

GetMessageBarTests 2PushMessageTests 2
flowchart TD
+  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
ApplyStyleFromPathTests
test_fehlender_layer_liefert_false
Prüft, dass ein fehlender Layer (None) False liefert.grüngeprüft am 2026-09-23
ApplyStyleFromPathTests
test_erfolgreiches_laden_liefert_true_und_triggert_repaint
Prüft, dass ein erfolgreich geladener Stil True liefert und den Layer neu zeichnet.grüngeprüft am 2026-09-23
ApplyStyleFromPathTests
test_pfad_wird_als_text_an_loadnamedstyle_uebergeben
Prüft, dass ein als Path übergebener Stilpfad unverändert als Text an loadNamedStyle weitergereicht wird.grüngeprüft am 2026-09-23
ApplyStyleFromPathTests
test_fehlgeschlagenes_laden_liefert_false_ohne_repaint
Prüft, dass ein fehlgeschlagenes Laden False liefert, ohne den Layer neu zu zeichnen.grüngeprüft am 2026-09-23
ApplyStyleFromPathTests
test_ausnahme_beim_laden_wird_abgefangen
Prüft, dass eine Ausnahme beim Laden des Stils abgefangen wird und False liefert.grüngeprüft am 2026-09-23

Tests für sn_basis/functions/message_wrapper.py (Issue #65).

GetMessageBarTests 2PushMessageTests 2
flowchart TD
   root(["test_message_wrapper.py"])
   class root rootnode
   root --> g1["GetMessageBarTests (2)"]
diff --git a/docs/tests/testkatalog.md b/docs/tests/testkatalog.md
index bf6bafc..803d427 100644
--- a/docs/tests/testkatalog.md
+++ b/docs/tests/testkatalog.md
@@ -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 `4d0c4430fa9f`)
+Stand des Prüf-Audits: `docs/status/testpruefungen.json` (SHA-256 `86bcb6ced85a`)
 
-Gesamt: 3 Pakete, 49 Testdateien, 595 Testfälle – 552 grün, 35 rot (Baseline), 8 übersprungen.
-Mit Beschreibung (Docstring): 450 von 595 (76 %).
-Fachlich geprüft: 171 von 595 (29 %) aktuell, 0 veraltet seit Codeänderung, 424 nie geprüft.
+Gesamt: 3 Pakete, 49 Testdateien, 596 Testfälle – 553 grün, 35 rot (Baseline), 8 übersprungen.
+Mit Beschreibung (Docstring): 451 von 596 (76 %).
+Fachlich geprüft: 176 von 596 (30 %) aktuell, 0 veraltet seit Codeänderung, 420 nie geprüft.
 Strukturelle Lücken (heuristisch, Namensabgleich): 145 von 413 (35 %) 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 | 343 | 343 | 0 | 0 | 343 von 343 (100 %) | 171 von 343 (50 %) | 72 von 229 (31 %) |
+| `sn_basis` | 32 | 344 | 344 | 0 | 0 | 344 von 344 (100 %) | 176 von 344 (51 %) | 72 von 229 (31 %) |
 | `sn_verfahrensgebiet` | 12 | 208 | 166 | 34 | 8 | 106 von 208 (51 %) | 0 von 208 (0 %) | 34 von 104 (33 %) |
 | `sn_plan41` | 5 | 44 | 43 | 1 | 0 | 1 von 44 (2 %) | 0 von 44 (0 %) | 39 von 80 (49 %) |
-| **Summe** | **49** | **595** | **552** | **35** | **8** | **450 von 595 (76 %)** | **171 von 595 (29 %)** | **145 von 413 (35 %)** |
+| **Summe** | **49** | **596** | **553** | **35** | **8** | **451 von 596 (76 %)** | **176 von 596 (30 %)** | **145 von 413 (35 %)** |
 
 ### Legende
 
@@ -36,7 +36,7 @@ Strukturelle Lücken (heuristisch, Namensabgleich): 145 von 413 (35 %) Funktione
 
 ## Paket `sn_basis`
 
-Plattform-Plugin, Ordner `Plugin_SN_Basis` – 32 Testdateien mit 343 Testfällen (343 grün, 0 rot, 0 übersprungen).
+Plattform-Plugin, Ordner `Plugin_SN_Basis` – 32 Testdateien mit 344 Testfällen (344 grün, 0 rot, 0 übersprungen).
 
 ### `Plugin_SN_Basis/tests/test_base_dockwidget.py`
 
@@ -366,14 +366,15 @@ Worum es in der Datei geht: Tests für sn_basis/functions/ly_style_wrapper.py::a
 
 Testgruppen:
 
-- `ApplyStyleFromPathTests` (4 Testfälle): — (Docstring fehlt)
+- `ApplyStyleFromPathTests` (5 Testfälle): — (Docstring fehlt)
 
 | Testfall | prüft | Status | geprüft |
 | --- | --- | --- | --- |
-| `ApplyStyleFromPathTests.test_fehlender_layer_liefert_false` | Prüft, dass ein fehlender Layer (None) False liefert, ohne einen Stil zu laden. | grün | nie geprüft |
-| `ApplyStyleFromPathTests.test_erfolgreiches_laden_liefert_true_und_triggert_repaint` | Prüft, dass ein erfolgreich geladener Stil True liefert und den Layer neu zeichnet. | grün | nie geprüft |
-| `ApplyStyleFromPathTests.test_fehlgeschlagenes_laden_liefert_false_ohne_repaint` | Prüft, dass ein fehlgeschlagenes Laden False liefert, ohne den Layer neu zu zeichnen. | grün | nie geprüft |
-| `ApplyStyleFromPathTests.test_ausnahme_beim_laden_wird_abgefangen` | Prüft, dass eine Ausnahme beim Laden des Stils abgefangen wird und False liefert. | grün | nie geprüft |
+| `ApplyStyleFromPathTests.test_fehlender_layer_liefert_false` | Prüft, dass ein fehlender Layer (None) False liefert. | grün | geprüft am 2026-09-23 |
+| `ApplyStyleFromPathTests.test_erfolgreiches_laden_liefert_true_und_triggert_repaint` | Prüft, dass ein erfolgreich geladener Stil True liefert und den Layer neu zeichnet. | grün | geprüft am 2026-09-23 |
+| `ApplyStyleFromPathTests.test_pfad_wird_als_text_an_loadnamedstyle_uebergeben` | Prüft, dass ein als Path übergebener Stilpfad unverändert als Text an loadNamedStyle weitergereicht wird. | grün | geprüft am 2026-09-23 |
+| `ApplyStyleFromPathTests.test_fehlgeschlagenes_laden_liefert_false_ohne_repaint` | Prüft, dass ein fehlgeschlagenes Laden False liefert, ohne den Layer neu zu zeichnen. | grün | geprüft am 2026-09-23 |
+| `ApplyStyleFromPathTests.test_ausnahme_beim_laden_wird_abgefangen` | Prüft, dass eine Ausnahme beim Laden des Stils abgefangen wird und False liefert. | grün | geprüft am 2026-09-23 |
 
 ### `Plugin_SN_Basis/tests/test_message_wrapper.py`
 
@@ -1266,7 +1267,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 343 Testfällen ohne Beschreibung
+### `sn_basis` – 0 von 344 Testfällen ohne Beschreibung
 
 Keine Lücken.