Test-Audit: TestStilpruefer (sn_basis) fachlich geprüft
Alle 4 Tests gegen modules/stilpruefer.py geprüft - Docstrings passen zur Implementierung, keine Diskrepanzen. Dabei entdeckt: der relative Pfad-Zweig (sn_plan41/assets-Redirect) ist untestet und hängt von get_plugin_root() ab, das laut #50 in Plugin_SN_Verfahrensgebiet einen Junction-Auflösungsfehler hat. Test für diesen Zweig zurückgestellt, bis der #50-Fix vorliegt. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -198,5 +198,21 @@
|
||||
"sn_basis.tests.test_settings_logic.TestSettingsLogic.test_save_empty_string_value_is_persisted": {
|
||||
"datum": "2026-09-17",
|
||||
"hash": "96f217d347c2"
|
||||
},
|
||||
"sn_basis.tests.test_stilpruefer.TestStilpruefer.test_datei_existiert_falsche_endung": {
|
||||
"datum": "2026-09-17",
|
||||
"hash": "37de9cd7e14c"
|
||||
},
|
||||
"sn_basis.tests.test_stilpruefer.TestStilpruefer.test_datei_existiert_mit_qml": {
|
||||
"datum": "2026-09-17",
|
||||
"hash": "1faf026ed344"
|
||||
},
|
||||
"sn_basis.tests.test_stilpruefer.TestStilpruefer.test_datei_existiert_nicht": {
|
||||
"datum": "2026-09-17",
|
||||
"hash": "2919c732c211"
|
||||
},
|
||||
"sn_basis.tests.test_stilpruefer.TestStilpruefer.test_keine_datei_angegeben": {
|
||||
"datum": "2026-09-17",
|
||||
"hash": "7a3d7bd800c3"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -119,14 +119,14 @@
|
||||
|
||||
<div class="topbar"><div class="brand"><h1>Prüfstand</h1>
|
||||
<span class="tagline">Testkatalog der sn_*-Plugins — was die Suite heute prüft, auf einen Blick.</span></div>
|
||||
<div class="meta-line">Quelle: <b>docs/tests/testkatalog.md</b><br>Baseline: <span class="mono">docs/status/testbaseline.json</span> (SHA-256 aeabc946a7f3)<br>Prüf-Audit: <span class="mono">docs/status/testpruefungen.json</span> (SHA-256 bf007ca0c715)</div></div>
|
||||
<div class="meta-line">Quelle: <b>docs/tests/testkatalog.md</b><br>Baseline: <span class="mono">docs/status/testbaseline.json</span> (SHA-256 aeabc946a7f3)<br>Prüf-Audit: <span class="mono">docs/status/testpruefungen.json</span> (SHA-256 0d643cd91110)</div></div>
|
||||
<div class="summary">
|
||||
<div class="stat"><span class="n">346</span><span class="l">Testfälle</span></div>
|
||||
<div class="stat ok"><span class="n">303</span><span class="l">grün</span></div>
|
||||
<div class="stat warn"><span class="n">35</span><span class="l">rot (Baseline)</span></div>
|
||||
<div class="stat skip"><span class="n">8</span><span class="l">übersprungen</span></div>
|
||||
<div class="stat"><span class="n">58%</span><span class="l">mit Docstring</span></div>
|
||||
<div class="stat"><span class="n">14%</span><span class="l">aktuell geprüft</span></div>
|
||||
<div class="stat"><span class="n">16%</span><span class="l">aktuell geprüft</span></div>
|
||||
<div class="stat"><span class="n">31</span><span class="l">Testdateien</span></div>
|
||||
</div>
|
||||
<div class="pkg-bars"><div class="pkg-bars-title">Verteilung je Paket</div>
|
||||
@@ -385,7 +385,7 @@
|
||||
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;</pre></div><table class="test-table"><thead><tr><th>Testfall</th><th>prüft</th><th>Status</th><th>geprüft</th></tr></thead><tbody><tr><td class="mono">TestSettingsLogic<br><span class="testname">test_load</span></td><td>Prüft, dass load() jede bekannte Projektvariable genau einmal über get_variable() liest.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-17</span></td></tr><tr><td class="mono">TestSettingsLogic<br><span class="testname">test_save</span></td><td>Prüft, dass save() nur bekannte Variablen-Keys speichert und unbekannte Keys ignoriert.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-17</span></td></tr><tr><td class="mono">TestSettingsLogic<br><span class="testname">test_load_handles_partial_values_with_empty_fallback</span></td><td>Prüft, dass load() für jede Variable den (auch leeren) Wert von get_variable() unverändert übernimmt, selbst wenn nicht alle Variablen im Mock konfiguriert sind.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-17</span></td></tr><tr><td class="mono">TestSettingsLogic<br><span class="testname">test_save_empty_string_value_is_persisted</span></td><td>Prüft, dass save() einen leeren String als gültigen Wert speichert, statt ihn wie einen fehlenden Key zu behandeln.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-17</span></td></tr></tbody></table></div></article><article class="filecard" data-search="plugin_sn_basis/tests/test_stilpruefer.py teststilpruefer test_keine_datei_angegeben teststilpruefer test_datei_existiert_mit_qml teststilpruefer test_datei_existiert_falsche_endung teststilpruefer test_datei_existiert_nicht" data-hasred="0" data-hasskip="0" data-nodoc="0" data-ungeprueft="1" data-veraltet="0"><button class="card-toggle" data-target="plugin-sn-basis-tests-test-stilpruefer-py" aria-expanded="false"><span class="card-path mono">Plugin_SN_Basis/tests/test_stilpruefer.py</span><span class="card-meta"><span class="count-total">4 Testfälle</span><span class="cpill cpill-ok">4</span><span class="docbadge" title="Anteil mit Docstring">100% beschrieben</span><span class="auditbadge" title="Anteil fachlich aktuell geprüft">0% geprüft</span><span class="chev" aria-hidden="true">▾</span></span></button><div class="card-body" id="body-plugin-sn-basis-tests-test-stilpruefer-py"><p class="filedesc">— (Docstring fehlt)</p><div class="gchips"><span class="gchip" title="">TestStilpruefer <b>4</b></span></div><div class="diagram-wrap"><pre class="mermaid">flowchart TD
|
||||
classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;</pre></div><table class="test-table"><thead><tr><th>Testfall</th><th>prüft</th><th>Status</th><th>geprüft</th></tr></thead><tbody><tr><td class="mono">TestSettingsLogic<br><span class="testname">test_load</span></td><td>Prüft, dass load() jede bekannte Projektvariable genau einmal über get_variable() liest.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-17</span></td></tr><tr><td class="mono">TestSettingsLogic<br><span class="testname">test_save</span></td><td>Prüft, dass save() nur bekannte Variablen-Keys speichert und unbekannte Keys ignoriert.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-17</span></td></tr><tr><td class="mono">TestSettingsLogic<br><span class="testname">test_load_handles_partial_values_with_empty_fallback</span></td><td>Prüft, dass load() für jede Variable den (auch leeren) Wert von get_variable() unverändert übernimmt, selbst wenn nicht alle Variablen im Mock konfiguriert sind.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-17</span></td></tr><tr><td class="mono">TestSettingsLogic<br><span class="testname">test_save_empty_string_value_is_persisted</span></td><td>Prüft, dass save() einen leeren String als gültigen Wert speichert, statt ihn wie einen fehlenden Key zu behandeln.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-17</span></td></tr></tbody></table></div></article><article class="filecard" data-search="plugin_sn_basis/tests/test_stilpruefer.py teststilpruefer test_keine_datei_angegeben teststilpruefer test_datei_existiert_mit_qml teststilpruefer test_datei_existiert_falsche_endung teststilpruefer test_datei_existiert_nicht" data-hasred="0" data-hasskip="0" data-nodoc="0" data-ungeprueft="0" data-veraltet="0"><button class="card-toggle" data-target="plugin-sn-basis-tests-test-stilpruefer-py" aria-expanded="false"><span class="card-path mono">Plugin_SN_Basis/tests/test_stilpruefer.py</span><span class="card-meta"><span class="count-total">4 Testfälle</span><span class="cpill cpill-ok">4</span><span class="docbadge" title="Anteil mit Docstring">100% beschrieben</span><span class="auditbadge" title="Anteil fachlich aktuell geprüft">100% geprüft</span><span class="chev" aria-hidden="true">▾</span></span></button><div class="card-body" id="body-plugin-sn-basis-tests-test-stilpruefer-py"><p class="filedesc">— (Docstring fehlt)</p><div class="gchips"><span class="gchip" title="">TestStilpruefer <b>4</b></span></div><div class="diagram-wrap"><pre class="mermaid">flowchart TD
|
||||
root(["test_stilpruefer.py"])
|
||||
class root rootnode
|
||||
root --> g1["TestStilpruefer (4)"]
|
||||
@@ -402,7 +402,7 @@
|
||||
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;</pre></div><table class="test-table"><thead><tr><th>Testfall</th><th>prüft</th><th>Status</th><th>geprüft</th></tr></thead><tbody><tr><td class="mono">TestStilpruefer<br><span class="testname">test_keine_datei_angegeben</span></td><td>Prüft, dass eine leere Pfadangabe als 'ok' ohne Kontext akzeptiert wird (Stil ist optional).</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-skip">nie geprüft</span></td></tr><tr><td class="mono">TestStilpruefer<br><span class="testname">test_datei_existiert_mit_qml</span></td><td>Prüft, dass eine existierende .qml-Datei als 'stil_anwendbar' bestätigt wird.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-skip">nie geprüft</span></td></tr><tr><td class="mono">TestStilpruefer<br><span class="testname">test_datei_existiert_falsche_endung</span></td><td>Prüft, dass eine existierende Datei ohne .qml-Endung als 'falsche_endung' abgelehnt wird.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-skip">nie geprüft</span></td></tr><tr><td class="mono">TestStilpruefer<br><span class="testname">test_datei_existiert_nicht</span></td><td>Prüft, dass ein nicht existierender .qml-Pfad als 'datei_nicht_gefunden' abgelehnt wird.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-skip">nie geprüft</span></td></tr></tbody></table></div></article><article class="filecard" data-search="plugin_sn_basis/tests/test_text_wrapper.py testsanitizebezeichner test_umlaute_bleiben_erhalten testsanitizebezeichner test_bindestrich_bleibt_erhalten testsanitizebezeichner test_unterstrich_bleibt_erhalten testsanitizebezeichner test_leerzeichen_wird_durch_ersatz_zusammengefasst testsanitizebezeichner test_fuehrender_und_folgender_ersatz_wird_entfernt testsanitizebezeichner test_eigenes_ersatzzeichen_wird_verwendet testsanitizebezeichner test_nur_unzulaessige_zeichen_ergibt_leeren_string" data-hasred="0" data-hasskip="0" data-nodoc="0" data-ungeprueft="1" data-veraltet="0"><button class="card-toggle" data-target="plugin-sn-basis-tests-test-text-wrapper-py" aria-expanded="false"><span class="card-path mono">Plugin_SN_Basis/tests/test_text_wrapper.py</span><span class="card-meta"><span class="count-total">7 Testfälle</span><span class="cpill cpill-ok">7</span><span class="docbadge" title="Anteil mit Docstring">100% beschrieben</span><span class="auditbadge" title="Anteil fachlich aktuell geprüft">0% geprüft</span><span class="chev" aria-hidden="true">▾</span></span></button><div class="card-body" id="body-plugin-sn-basis-tests-test-text-wrapper-py"><p class="filedesc">Unit-Tests für `sn_basis.functions.text_wrapper`.</p><div class="gchips"><span class="gchip" title="">TestSanitizeBezeichner <b>7</b></span></div><div class="diagram-wrap"><pre class="mermaid">flowchart TD
|
||||
classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;</pre></div><table class="test-table"><thead><tr><th>Testfall</th><th>prüft</th><th>Status</th><th>geprüft</th></tr></thead><tbody><tr><td class="mono">TestStilpruefer<br><span class="testname">test_keine_datei_angegeben</span></td><td>Prüft, dass eine leere Pfadangabe als 'ok' ohne Kontext akzeptiert wird (Stil ist optional).</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-17</span></td></tr><tr><td class="mono">TestStilpruefer<br><span class="testname">test_datei_existiert_mit_qml</span></td><td>Prüft, dass eine existierende .qml-Datei als 'stil_anwendbar' bestätigt wird.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-17</span></td></tr><tr><td class="mono">TestStilpruefer<br><span class="testname">test_datei_existiert_falsche_endung</span></td><td>Prüft, dass eine existierende Datei ohne .qml-Endung als 'falsche_endung' abgelehnt wird.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-17</span></td></tr><tr><td class="mono">TestStilpruefer<br><span class="testname">test_datei_existiert_nicht</span></td><td>Prüft, dass ein nicht existierender .qml-Pfad als 'datei_nicht_gefunden' abgelehnt wird.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-17</span></td></tr></tbody></table></div></article><article class="filecard" data-search="plugin_sn_basis/tests/test_text_wrapper.py testsanitizebezeichner test_umlaute_bleiben_erhalten testsanitizebezeichner test_bindestrich_bleibt_erhalten testsanitizebezeichner test_unterstrich_bleibt_erhalten testsanitizebezeichner test_leerzeichen_wird_durch_ersatz_zusammengefasst testsanitizebezeichner test_fuehrender_und_folgender_ersatz_wird_entfernt testsanitizebezeichner test_eigenes_ersatzzeichen_wird_verwendet testsanitizebezeichner test_nur_unzulaessige_zeichen_ergibt_leeren_string" data-hasred="0" data-hasskip="0" data-nodoc="0" data-ungeprueft="1" data-veraltet="0"><button class="card-toggle" data-target="plugin-sn-basis-tests-test-text-wrapper-py" aria-expanded="false"><span class="card-path mono">Plugin_SN_Basis/tests/test_text_wrapper.py</span><span class="card-meta"><span class="count-total">7 Testfälle</span><span class="cpill cpill-ok">7</span><span class="docbadge" title="Anteil mit Docstring">100% beschrieben</span><span class="auditbadge" title="Anteil fachlich aktuell geprüft">0% geprüft</span><span class="chev" aria-hidden="true">▾</span></span></button><div class="card-body" id="body-plugin-sn-basis-tests-test-text-wrapper-py"><p class="filedesc">Unit-Tests für `sn_basis.functions.text_wrapper`.</p><div class="gchips"><span class="gchip" title="">TestSanitizeBezeichner <b>7</b></span></div><div class="diagram-wrap"><pre class="mermaid">flowchart TD
|
||||
root(["test_text_wrapper.py"])
|
||||
class root rootnode
|
||||
root --> g1["TestSanitizeBezeichner (7)"]
|
||||
|
||||
@@ -8,20 +8,20 @@ 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 `bf007ca0c715`)
|
||||
Stand des Prüf-Audits: `docs/status/testpruefungen.json` (SHA-256 `0d643cd91110`)
|
||||
|
||||
Gesamt: 3 Pakete, 31 Testdateien, 346 Testfälle – 303 grün, 35 rot (Baseline), 8 übersprungen.
|
||||
Mit Beschreibung (Docstring): 201 von 346 (58 %).
|
||||
Fachlich geprüft: 50 von 346 (14 %) aktuell, 0 veraltet seit Codeänderung, 296 nie geprüft.
|
||||
Fachlich geprüft: 54 von 346 (16 %) aktuell, 0 veraltet seit Codeänderung, 292 nie geprüft.
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
| Paket | Testdateien | Testfälle | grün | rot (Baseline) | übersprungen | mit Beschreibung | fachlich geprüft |
|
||||
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
||||
| `sn_basis` | 14 | 95 | 95 | 0 | 0 | 95 von 95 (100 %) | 50 von 95 (53 %) |
|
||||
| `sn_basis` | 14 | 95 | 95 | 0 | 0 | 95 von 95 (100 %) | 54 von 95 (57 %) |
|
||||
| `sn_verfahrensgebiet` | 12 | 207 | 165 | 34 | 8 | 105 von 207 (51 %) | 0 von 207 (0 %) |
|
||||
| `sn_plan41` | 5 | 44 | 43 | 1 | 0 | 1 von 44 (2 %) | 0 von 44 (0 %) |
|
||||
| **Summe** | **31** | **346** | **303** | **35** | **8** | **201 von 346 (58 %)** | **50 von 346 (14 %)** |
|
||||
| **Summe** | **31** | **346** | **303** | **35** | **8** | **201 von 346 (58 %)** | **54 von 346 (16 %)** |
|
||||
|
||||
### Legende
|
||||
|
||||
@@ -224,10 +224,10 @@ Testgruppen:
|
||||
|
||||
| Testfall | prüft | Status | geprüft |
|
||||
| --- | --- | --- | --- |
|
||||
| `TestStilpruefer.test_keine_datei_angegeben` | Prüft, dass eine leere Pfadangabe als 'ok' ohne Kontext akzeptiert wird (Stil ist optional). | grün | nie geprüft |
|
||||
| `TestStilpruefer.test_datei_existiert_mit_qml` | Prüft, dass eine existierende .qml-Datei als 'stil_anwendbar' bestätigt wird. | grün | nie geprüft |
|
||||
| `TestStilpruefer.test_datei_existiert_falsche_endung` | Prüft, dass eine existierende Datei ohne .qml-Endung als 'falsche_endung' abgelehnt wird. | grün | nie geprüft |
|
||||
| `TestStilpruefer.test_datei_existiert_nicht` | Prüft, dass ein nicht existierender .qml-Pfad als 'datei_nicht_gefunden' abgelehnt wird. | grün | nie geprüft |
|
||||
| `TestStilpruefer.test_keine_datei_angegeben` | Prüft, dass eine leere Pfadangabe als 'ok' ohne Kontext akzeptiert wird (Stil ist optional). | grün | geprüft am 2026-09-17 |
|
||||
| `TestStilpruefer.test_datei_existiert_mit_qml` | Prüft, dass eine existierende .qml-Datei als 'stil_anwendbar' bestätigt wird. | grün | geprüft am 2026-09-17 |
|
||||
| `TestStilpruefer.test_datei_existiert_falsche_endung` | Prüft, dass eine existierende Datei ohne .qml-Endung als 'falsche_endung' abgelehnt wird. | grün | geprüft am 2026-09-17 |
|
||||
| `TestStilpruefer.test_datei_existiert_nicht` | Prüft, dass ein nicht existierender .qml-Pfad als 'datei_nicht_gefunden' abgelehnt wird. | grün | geprüft am 2026-09-17 |
|
||||
|
||||
### `Plugin_SN_Basis/tests/test_text_wrapper.py`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user