diff --git a/docs/status/testpruefungen.json b/docs/status/testpruefungen.json index 4802dbc..fc93ae1 100644 --- a/docs/status/testpruefungen.json +++ b/docs/status/testpruefungen.json @@ -1130,5 +1130,33 @@ "sn_basis.tests.test_text_wrapper.TestSanitizeBezeichner.test_unterstrich_bleibt_erhalten": { "datum": "2026-10-26", "hash": "9ff48d7734c8" + }, + "sn_basis.tests.test_variable_wrapper.TestVariableWrapper.test_get_variable_global_returns_empty_string_fallback": { + "datum": "2026-10-26", + "hash": "888893cd08a8" + }, + "sn_basis.tests.test_variable_wrapper.TestVariableWrapper.test_get_variable_invalid_scope_raises": { + "datum": "2026-10-26", + "hash": "2d3d3ca3c7c8" + }, + "sn_basis.tests.test_variable_wrapper.TestVariableWrapper.test_get_variable_project_liest_praefixierten_namen": { + "datum": "2026-10-26", + "hash": "dc2dc0f29a63" + }, + "sn_basis.tests.test_variable_wrapper.TestVariableWrapper.test_set_variable_global_writes_prefixed_name": { + "datum": "2026-10-26", + "hash": "d3626328d7e6" + }, + "sn_basis.tests.test_variable_wrapper.TestVariableWrapper.test_set_variable_invalid_scope_raises": { + "datum": "2026-10-26", + "hash": "c3df384c4f9e" + }, + "sn_basis.tests.test_variable_wrapper.TestVariableWrapper.test_set_variable_project_changed_value_is_written": { + "datum": "2026-10-26", + "hash": "391705a9f6d2" + }, + "sn_basis.tests.test_variable_wrapper.TestVariableWrapper.test_set_variable_project_noop_write_is_skipped": { + "datum": "2026-10-26", + "hash": "38ee0f7ec99b" } } diff --git a/docs/tests/testkatalog.html b/docs/tests/testkatalog.html index 6b921f1..b839df5 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 92b94e7ed46e)
+
Quelle: docs/tests/testkatalog.md
Baseline: docs/status/testbaseline.json (SHA-256 aeabc946a7f3)
Prüf-Audit: docs/status/testpruefungen.json (SHA-256 b5c66dc5bdb2)
-
696Testfälle
-
653grün
+
697Testfälle
+
654grün
35rot (Baseline)
79%mit Docstring
-
41%aktuell geprüft
+
42%aktuell geprüft
55Testdateien
34%ohne Testbezug
Verteilung je Paket
-
sn_basis32 Dateien · 363 Testfälle
+
sn_basis32 Dateien · 364 Testfälle
sn_verfahrensgebiet18 Dateien · 289 Testfälle
sn_plan415 Dateien · 44 Testfälle
@@ -159,11 +159,11 @@

sn_basis

Plattform-Plugin · Ordner Plugin_SN_Basis

- -
32Testdateien
363Testfälle
363grün
0rot (Baseline)
100%mit Docstring
78%geprüft
70ohne Testbezug
+
32Testdateien
364Testfälle
364grün
0rot (Baseline)
100%mit Docstring
80%geprüft
70ohne 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
@@ -1215,28 +1215,30 @@
   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
TestSanitizeBezeichner
test_umlaute_bleiben_erhalten
Prüft, dass alle Umlaute (klein und groß) und ß nicht durch den Ersatz entfernt werden.grüngeprüft am 2026-10-26
TestSanitizeBezeichner
test_bindestrich_bleibt_erhalten
Prüft, dass ein Bindestrich im Bezeichner erhalten bleibt (Issue #42).grüngeprüft am 2026-10-26
TestSanitizeBezeichner
test_unterstrich_bleibt_erhalten
Prüft, dass ein Unterstrich im Bezeichner erhalten bleibt.grüngeprüft am 2026-10-26
TestSanitizeBezeichner
test_leerzeichen_wird_durch_ersatz_zusammengefasst
Prüft, dass eine Folge unzulässiger Zeichen (hier zwei Leerzeichen) zu genau einem Ersatzzeichen zusammengefasst wird.grüngeprüft am 2026-10-26
TestSanitizeBezeichner
test_fuehrender_und_folgender_ersatz_wird_entfernt
Prüft, dass ein Ersatzzeichen am Anfang oder Ende des Ergebnisses entfernt wird.grüngeprüft am 2026-10-26
TestSanitizeBezeichner
test_eigenes_ersatzzeichen_wird_verwendet
Prüft, dass ein abweichendes Ersatzzeichen anstelle von Unterstrich genutzt wird.grüngeprüft am 2026-10-26
TestSanitizeBezeichner
test_nur_unzulaessige_zeichen_ergibt_leeren_string
Prüft, dass ein Bezeichner ganz aus unzulässigen Zeichen zu einem leeren String wird.grüngeprüft am 2026-10-26

— (Docstring fehlt)

TestVariableWrapper 6
flowchart TD
+  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestSanitizeBezeichner
test_umlaute_bleiben_erhalten
Prüft, dass alle Umlaute (klein und groß) und ß nicht durch den Ersatz entfernt werden.grüngeprüft am 2026-10-26
TestSanitizeBezeichner
test_bindestrich_bleibt_erhalten
Prüft, dass ein Bindestrich im Bezeichner erhalten bleibt (Issue #42).grüngeprüft am 2026-10-26
TestSanitizeBezeichner
test_unterstrich_bleibt_erhalten
Prüft, dass ein Unterstrich im Bezeichner erhalten bleibt.grüngeprüft am 2026-10-26
TestSanitizeBezeichner
test_leerzeichen_wird_durch_ersatz_zusammengefasst
Prüft, dass eine Folge unzulässiger Zeichen (hier zwei Leerzeichen) zu genau einem Ersatzzeichen zusammengefasst wird.grüngeprüft am 2026-10-26
TestSanitizeBezeichner
test_fuehrender_und_folgender_ersatz_wird_entfernt
Prüft, dass ein Ersatzzeichen am Anfang oder Ende des Ergebnisses entfernt wird.grüngeprüft am 2026-10-26
TestSanitizeBezeichner
test_eigenes_ersatzzeichen_wird_verwendet
Prüft, dass ein abweichendes Ersatzzeichen anstelle von Unterstrich genutzt wird.grüngeprüft am 2026-10-26
TestSanitizeBezeichner
test_nur_unzulaessige_zeichen_ergibt_leeren_string
Prüft, dass ein Bezeichner ganz aus unzulässigen Zeichen zu einem leeren String wird.grüngeprüft am 2026-10-26

— (Docstring fehlt)

TestVariableWrapper 7
flowchart TD
   root(["test_variable_wrapper.py"])
   class root rootnode
-  root --> g1["TestVariableWrapper (6)"]
+  root --> g1["TestVariableWrapper (7)"]
   class g1 groupnode
   g1 --> t1("set_variable_project_noop_write_is_skipped")
   g1 --> t2("set_variable_project_changed_value_is_written")
   g1 --> t3("set_variable_global_writes_prefixed_name")
   g1 --> t4("get_variable_global_returns_empty_string_fallback")
-  g1 --> t5("get_variable_invalid_scope_raises")
-  g1 --> t6("set_variable_invalid_scope_raises")
+  g1 --> t5("get_variable_project_liest_praefixierten_namen")
+  g1 --> t6("get_variable_invalid_scope_raises")
+  g1 --> t7("set_variable_invalid_scope_raises")
   class t1 ok
   class t2 ok
   class t3 ok
   class t4 ok
   class t5 ok
   class t6 ok
+  class t7 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
TestVariableWrapper
test_set_variable_project_noop_write_is_skipped
Prüft, dass set_variable() im Projekt-Scope nicht schreibt, wenn der neue Wert dem bestehenden entspricht.grünnie geprüft
TestVariableWrapper
test_set_variable_project_changed_value_is_written
Prüft, dass set_variable() im Projekt-Scope bei geändertem Wert mit dem Präfix 'sn_' geschrieben wird.grünnie geprüft
TestVariableWrapper
test_set_variable_global_writes_prefixed_name
Prüft, dass set_variable() im globalen Scope den Variablennamen mit 'sn_' vorangestellt schreibt.grünnie geprüft
TestVariableWrapper
test_get_variable_global_returns_empty_string_fallback
Prüft, dass get_variable() im globalen Scope für eine nicht gesetzte Variable einen leeren String liefert.grünnie geprüft
TestVariableWrapper
test_get_variable_invalid_scope_raises
Prüft, dass get_variable() bei einem unbekannten Scope-Namen einen ValueError auslöst.grünnie geprüft
TestVariableWrapper
test_set_variable_invalid_scope_raises
Prüft, dass set_variable() bei einem unbekannten Scope-Namen einen ValueError auslöst.grünnie geprüft

Tests für sn_basis/functions/verfahrensgebiet_manager.py (zentrale Layer-Verfolgung, Issue #65).

TestVerfahrensgebietManager 5OnHandlerTests 5ListenerSetupTests 3
flowchart TD
+  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestVariableWrapper
test_set_variable_project_noop_write_is_skipped
Prüft, dass set_variable() im Projekt-Scope nicht schreibt, wenn der neue Wert dem bestehenden entspricht.grüngeprüft am 2026-10-26
TestVariableWrapper
test_set_variable_project_changed_value_is_written
Prüft, dass set_variable() im Projekt-Scope bei geändertem Wert mit dem Präfix 'sn_' geschrieben wird.grüngeprüft am 2026-10-26
TestVariableWrapper
test_set_variable_global_writes_prefixed_name
Prüft, dass set_variable() im globalen Scope den Variablennamen mit 'sn_' vorangestellt schreibt.grüngeprüft am 2026-10-26
TestVariableWrapper
test_get_variable_global_returns_empty_string_fallback
Prüft, dass get_variable() im globalen Scope für eine nicht gesetzte Variable einen leeren String statt None liefert.grüngeprüft am 2026-10-26
TestVariableWrapper
test_get_variable_project_liest_praefixierten_namen
Prüft, dass get_variable() im Projekt-Scope den Namen mit 'sn_' aus dem Scope des aktuellen Projekts liest.grüngeprüft am 2026-10-26
TestVariableWrapper
test_get_variable_invalid_scope_raises
Prüft, dass get_variable() bei einem unbekannten Scope-Namen einen ValueError auslöst.grüngeprüft am 2026-10-26
TestVariableWrapper
test_set_variable_invalid_scope_raises
Prüft, dass set_variable() bei einem unbekannten Scope-Namen einen ValueError auslöst.grüngeprüft am 2026-10-26

Tests für sn_basis/functions/verfahrensgebiet_manager.py (zentrale Layer-Verfolgung, Issue #65).

TestVerfahrensgebietManager 5OnHandlerTests 5ListenerSetupTests 3
flowchart TD
   root(["test_verfahrensgebiet_manager.py"])
   class root rootnode
   root --> g1["TestVerfahrensgebietManager (5)"]
diff --git a/docs/tests/testkatalog.md b/docs/tests/testkatalog.md
index 4999125..f73919a 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 `92b94e7ed46e`)
+Stand des Prüf-Audits: `docs/status/testpruefungen.json` (SHA-256 `b5c66dc5bdb2`)
 
-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: 283 von 696 (41 %) aktuell, 0 veraltet seit Codeänderung, 413 nie geprüft.
+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.
 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 | 363 | 363 | 0 | 0 | 363 von 363 (100 %) | 283 von 363 (78 %) | 70 von 229 (31 %) |
+| `sn_basis` | 32 | 364 | 364 | 0 | 0 | 364 von 364 (100 %) | 290 von 364 (80 %) | 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** | **696** | **653** | **35** | **8** | **551 von 696 (79 %)** | **283 von 696 (41 %)** | **160 von 470 (34 %)** |
+| **Summe** | **55** | **697** | **654** | **35** | **8** | **552 von 697 (79 %)** | **290 von 697 (42 %)** | **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 363 Testfällen (363 grün, 0 rot, 0 übersprungen).
+Plattform-Plugin, Ordner `Plugin_SN_Basis` – 32 Testdateien mit 364 Testfällen (364 grün, 0 rot, 0 übersprungen).
 
 ### `Plugin_SN_Basis/tests/test_base_dockwidget.py`
 
@@ -764,16 +764,17 @@ Worum es in der Datei geht: — (Docstring fehlt)
 
 Testgruppen:
 
-- `TestVariableWrapper` (6 Testfälle): — (Docstring fehlt)
+- `TestVariableWrapper` (7 Testfälle): — (Docstring fehlt)
 
 | Testfall | prüft | Status | geprüft |
 | --- | --- | --- | --- |
-| `TestVariableWrapper.test_set_variable_project_noop_write_is_skipped` | Prüft, dass set_variable() im Projekt-Scope nicht schreibt, wenn der neue Wert dem bestehenden entspricht. | grün | nie geprüft |
-| `TestVariableWrapper.test_set_variable_project_changed_value_is_written` | Prüft, dass set_variable() im Projekt-Scope bei geändertem Wert mit dem Präfix 'sn_' geschrieben wird. | grün | nie geprüft |
-| `TestVariableWrapper.test_set_variable_global_writes_prefixed_name` | Prüft, dass set_variable() im globalen Scope den Variablennamen mit 'sn_' vorangestellt schreibt. | grün | nie geprüft |
-| `TestVariableWrapper.test_get_variable_global_returns_empty_string_fallback` | Prüft, dass get_variable() im globalen Scope für eine nicht gesetzte Variable einen leeren String liefert. | grün | nie geprüft |
-| `TestVariableWrapper.test_get_variable_invalid_scope_raises` | Prüft, dass get_variable() bei einem unbekannten Scope-Namen einen ValueError auslöst. | grün | nie geprüft |
-| `TestVariableWrapper.test_set_variable_invalid_scope_raises` | Prüft, dass set_variable() bei einem unbekannten Scope-Namen einen ValueError auslöst. | grün | nie geprüft |
+| `TestVariableWrapper.test_set_variable_project_noop_write_is_skipped` | Prüft, dass set_variable() im Projekt-Scope nicht schreibt, wenn der neue Wert dem bestehenden entspricht. | grün | geprüft am 2026-10-26 |
+| `TestVariableWrapper.test_set_variable_project_changed_value_is_written` | Prüft, dass set_variable() im Projekt-Scope bei geändertem Wert mit dem Präfix 'sn_' geschrieben wird. | grün | geprüft am 2026-10-26 |
+| `TestVariableWrapper.test_set_variable_global_writes_prefixed_name` | Prüft, dass set_variable() im globalen Scope den Variablennamen mit 'sn_' vorangestellt schreibt. | grün | geprüft am 2026-10-26 |
+| `TestVariableWrapper.test_get_variable_global_returns_empty_string_fallback` | Prüft, dass get_variable() im globalen Scope für eine nicht gesetzte Variable einen leeren String statt None liefert. | grün | geprüft am 2026-10-26 |
+| `TestVariableWrapper.test_get_variable_project_liest_praefixierten_namen` | Prüft, dass get_variable() im Projekt-Scope den Namen mit 'sn_' aus dem Scope des aktuellen Projekts liest. | grün | geprüft am 2026-10-26 |
+| `TestVariableWrapper.test_get_variable_invalid_scope_raises` | Prüft, dass get_variable() bei einem unbekannten Scope-Namen einen ValueError auslöst. | grün | geprüft am 2026-10-26 |
+| `TestVariableWrapper.test_set_variable_invalid_scope_raises` | Prüft, dass set_variable() bei einem unbekannten Scope-Namen einen ValueError auslöst. | grün | geprüft am 2026-10-26 |
 
 ### `Plugin_SN_Basis/tests/test_verfahrensgebiet_manager.py`
 
@@ -1449,7 +1450,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 363 Testfällen ohne Beschreibung
+### `sn_basis` – 0 von 364 Testfällen ohne Beschreibung
 
 Keine Lücken.