Test-Audit: TestDataGrabber (sn_basis) fachlich geprüft
Erster echter Audit-Durchgang mit scripts/test_audit.py: alle sechs TestDataGrabber-Testfälle durchgesehen, mit Docstring versehen (Plugin_SN_Basis, separater Branch/PR) und als geprüft markiert. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"sn_basis.tests.test_datagrabber.TestDataGrabber.test_analyze_source_type_detects_excel": {
|
||||
"datum": "2026-09-16",
|
||||
"hash": "9559f9923f6f"
|
||||
},
|
||||
"sn_basis.tests.test_datagrabber.TestDataGrabber.test_analyze_source_type_detects_service_when_file_check_fails": {
|
||||
"datum": "2026-09-16",
|
||||
"hash": "90c4384eac7f"
|
||||
},
|
||||
"sn_basis.tests.test_datagrabber.TestDataGrabber.test_analyze_source_type_returns_unbekannte_quelle_on_full_failure": {
|
||||
"datum": "2026-09-16",
|
||||
"hash": "3b35bfdb3f04"
|
||||
},
|
||||
"sn_basis.tests.test_datagrabber.TestDataGrabber.test_analyze_source_type_returns_unknown_filetype": {
|
||||
"datum": "2026-09-16",
|
||||
"hash": "78cd94c858de"
|
||||
},
|
||||
"sn_basis.tests.test_datagrabber.TestDataGrabber.test_run_returns_failure_summary_without_rows": {
|
||||
"datum": "2026-09-16",
|
||||
"hash": "1369d06aff3d"
|
||||
},
|
||||
"sn_basis.tests.test_datagrabber.TestDataGrabber.test_run_returns_success_summary_with_valid_rows": {
|
||||
"datum": "2026-09-16",
|
||||
"hash": "55fcd3a0fc84"
|
||||
}
|
||||
}
|
||||
@@ -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> nicht gefunden</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 e2ea4d5d5f8a)</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">301</span><span class="l">grün</span></div>
|
||||
<div class="stat warn"><span class="n">37</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">33%</span><span class="l">mit Docstring</span></div>
|
||||
<div class="stat"><span class="n">0%</span><span class="l">aktuell geprüft</span></div>
|
||||
<div class="stat"><span class="n">35%</span><span class="l">mit Docstring</span></div>
|
||||
<div class="stat"><span class="n">2%</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>
|
||||
@@ -158,7 +158,7 @@
|
||||
<span class="seg seg-ok" style="width:100%"></span><span class="seg seg-warn" style="width:0%"></span><span class="seg seg-skip" style="width:0%"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-grid"><article class="filecard" data-search="plugin_sn_basis/tests/test_bootstrap.py " data-hasred="0" data-hasskip="0" data-nodoc="1" data-ungeprueft="0" data-veraltet="0"><button class="card-toggle" data-target="plugin-sn-basis-tests-test-bootstrap-py" aria-expanded="false"><span class="card-path mono">Plugin_SN_Basis/tests/test_bootstrap.py</span><span class="card-meta"><span class="count-total">0 Testfälle</span><span class="docbadge" title="Anteil mit Docstring">0% 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-bootstrap-py"><p class="filedesc">— (Docstring fehlt)</p><p class="empty-note">Keine Testfälle: Die Datei enthält keine <span class="mono">unittest.TestCase</span>-Klasse – sie ist eine reine Hilfsdatei, die beim Testlauf nur importiert wird.</p></div></article><article class="filecard" data-search="plugin_sn_basis/tests/test_datagrabber.py testdatagrabber test_analyze_source_type_detects_excel testdatagrabber test_analyze_source_type_returns_unknown_filetype testdatagrabber test_analyze_source_type_detects_service_when_file_check_fails testdatagrabber test_analyze_source_type_returns_unbekannte_quelle_on_full_failure testdatagrabber test_run_returns_success_summary_with_valid_rows testdatagrabber test_run_returns_failure_summary_without_rows" data-hasred="0" data-hasskip="0" data-nodoc="1" data-ungeprueft="1" data-veraltet="0"><button class="card-toggle" data-target="plugin-sn-basis-tests-test-datagrabber-py" aria-expanded="false"><span class="card-path mono">Plugin_SN_Basis/tests/test_datagrabber.py</span><span class="card-meta"><span class="count-total">6 Testfälle</span><span class="cpill cpill-ok">6</span><span class="docbadge" title="Anteil mit Docstring">0% 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-datagrabber-py"><p class="filedesc">— (Docstring fehlt)</p><div class="gchips"><span class="gchip" title="">TestDataGrabber <b>6</b></span></div><div class="diagram-wrap"><pre class="mermaid">flowchart TD
|
||||
<div class="card-grid"><article class="filecard" data-search="plugin_sn_basis/tests/test_bootstrap.py " data-hasred="0" data-hasskip="0" data-nodoc="1" data-ungeprueft="0" data-veraltet="0"><button class="card-toggle" data-target="plugin-sn-basis-tests-test-bootstrap-py" aria-expanded="false"><span class="card-path mono">Plugin_SN_Basis/tests/test_bootstrap.py</span><span class="card-meta"><span class="count-total">0 Testfälle</span><span class="docbadge" title="Anteil mit Docstring">0% 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-bootstrap-py"><p class="filedesc">— (Docstring fehlt)</p><p class="empty-note">Keine Testfälle: Die Datei enthält keine <span class="mono">unittest.TestCase</span>-Klasse – sie ist eine reine Hilfsdatei, die beim Testlauf nur importiert wird.</p></div></article><article class="filecard" data-search="plugin_sn_basis/tests/test_datagrabber.py testdatagrabber test_analyze_source_type_detects_excel testdatagrabber test_analyze_source_type_returns_unknown_filetype testdatagrabber test_analyze_source_type_detects_service_when_file_check_fails testdatagrabber test_analyze_source_type_returns_unbekannte_quelle_on_full_failure testdatagrabber test_run_returns_success_summary_with_valid_rows testdatagrabber test_run_returns_failure_summary_without_rows" 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-datagrabber-py" aria-expanded="false"><span class="card-path mono">Plugin_SN_Basis/tests/test_datagrabber.py</span><span class="card-meta"><span class="count-total">6 Testfälle</span><span class="cpill cpill-ok">6</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-datagrabber-py"><p class="filedesc">— (Docstring fehlt)</p><div class="gchips"><span class="gchip" title="">TestDataGrabber <b>6</b></span></div><div class="diagram-wrap"><pre class="mermaid">flowchart TD
|
||||
root(["test_datagrabber.py"])
|
||||
class root rootnode
|
||||
root --> g1["TestDataGrabber (6)"]
|
||||
@@ -179,7 +179,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">TestDataGrabber<br><span class="testname">test_analyze_source_type_detects_excel</span></td><td><span class="nodoc">— (Docstring fehlt)</span></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">TestDataGrabber<br><span class="testname">test_analyze_source_type_returns_unknown_filetype</span></td><td><span class="nodoc">— (Docstring fehlt)</span></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">TestDataGrabber<br><span class="testname">test_analyze_source_type_detects_service_when_file_check_fails</span></td><td><span class="nodoc">— (Docstring fehlt)</span></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">TestDataGrabber<br><span class="testname">test_analyze_source_type_returns_unbekannte_quelle_on_full_failure</span></td><td><span class="nodoc">— (Docstring fehlt)</span></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">TestDataGrabber<br><span class="testname">test_run_returns_success_summary_with_valid_rows</span></td><td><span class="nodoc">— (Docstring fehlt)</span></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">TestDataGrabber<br><span class="testname">test_run_returns_failure_summary_without_rows</span></td><td><span class="nodoc">— (Docstring fehlt)</span></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_dateipruefer.py testdateipruefer test_leereingabe_erlaubt testdateipruefer test_leereingabe_nicht_erlaubt testdateipruefer test_standarddatei_vorschlagen testdateipruefer test_temporaer_erlaubt testdateipruefer test_datei_nicht_gefunden testdateipruefer test_datei_ok" data-hasred="0" data-hasskip="0" data-nodoc="1" data-ungeprueft="1" data-veraltet="0"><button class="card-toggle" data-target="plugin-sn-basis-tests-test-dateipruefer-py" aria-expanded="false"><span class="card-path mono">Plugin_SN_Basis/tests/test_dateipruefer.py</span><span class="card-meta"><span class="count-total">6 Testfälle</span><span class="cpill cpill-ok">6</span><span class="docbadge" title="Anteil mit Docstring">0% 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-dateipruefer-py"><p class="filedesc">— (Docstring fehlt)</p><div class="gchips"><span class="gchip" title="">TestDateipruefer <b>6</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">TestDataGrabber<br><span class="testname">test_analyze_source_type_detects_excel</span></td><td>Prüft, dass eine erreichbare .xlsx-Datei als Quelltyp 'excel' erkannt wird.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-16</span></td></tr><tr><td class="mono">TestDataGrabber<br><span class="testname">test_analyze_source_type_returns_unknown_filetype</span></td><td>Prüft, dass eine erreichbare Datei mit unbekannter Endung als 'unbekannter_dateityp' eingestuft wird.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-16</span></td></tr><tr><td class="mono">TestDataGrabber<br><span class="testname">test_analyze_source_type_detects_service_when_file_check_fails</span></td><td>Prüft, dass eine Quelle als 'dienst' erkannt wird, wenn die Dateiprüfung fehlschlägt, die URL aber erreichbar ist.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-16</span></td></tr><tr><td class="mono">TestDataGrabber<br><span class="testname">test_analyze_source_type_returns_unbekannte_quelle_on_full_failure</span></td><td>Prüft, dass eine Quelle als 'unbekannte_quelle' eingestuft wird, wenn weder Datei- noch Linkprüfung erfolgreich sind.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-16</span></td></tr><tr><td class="mono">TestDataGrabber<br><span class="testname">test_run_returns_success_summary_with_valid_rows</span></td><td>Prüft, dass run() bei erfolgreichem Excel-Import eine Erfolgsmeldung mit den geladenen Zeilen liefert.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-16</span></td></tr><tr><td class="mono">TestDataGrabber<br><span class="testname">test_run_returns_failure_summary_without_rows</span></td><td>Prüft, dass run() bei nicht erkennbarer Quelle eine Fehlermeldung ohne Zeilen liefert.</td><td><span class="pill pill-ok">grün</span></td><td><span class="pill pill-pr-ok">geprüft am 2026-09-16</span></td></tr></tbody></table></div></article><article class="filecard" data-search="plugin_sn_basis/tests/test_dateipruefer.py testdateipruefer test_leereingabe_erlaubt testdateipruefer test_leereingabe_nicht_erlaubt testdateipruefer test_standarddatei_vorschlagen testdateipruefer test_temporaer_erlaubt testdateipruefer test_datei_nicht_gefunden testdateipruefer test_datei_ok" data-hasred="0" data-hasskip="0" data-nodoc="1" data-ungeprueft="1" data-veraltet="0"><button class="card-toggle" data-target="plugin-sn-basis-tests-test-dateipruefer-py" aria-expanded="false"><span class="card-path mono">Plugin_SN_Basis/tests/test_dateipruefer.py</span><span class="card-meta"><span class="count-total">6 Testfälle</span><span class="cpill cpill-ok">6</span><span class="docbadge" title="Anteil mit Docstring">0% 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-dateipruefer-py"><p class="filedesc">— (Docstring fehlt)</p><div class="gchips"><span class="gchip" title="">TestDateipruefer <b>6</b></span></div><div class="diagram-wrap"><pre class="mermaid">flowchart TD
|
||||
root(["test_dateipruefer.py"])
|
||||
class root rootnode
|
||||
root --> g1["TestDateipruefer (6)"]
|
||||
|
||||
+12
-21
@@ -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` **nicht gefunden** – alle Testfälle gelten als nie geprüft.
|
||||
Stand des Prüf-Audits: `docs/status/testpruefungen.json` (SHA-256 `e2ea4d5d5f8a`)
|
||||
|
||||
Gesamt: 3 Pakete, 31 Testdateien, 346 Testfälle – 301 grün, 37 rot (Baseline), 8 übersprungen.
|
||||
Mit Beschreibung (Docstring): 114 von 346 (33 %).
|
||||
Fachlich geprüft: 0 von 346 (0 %) aktuell, 0 veraltet seit Codeänderung, 346 nie geprüft.
|
||||
Mit Beschreibung (Docstring): 120 von 346 (35 %).
|
||||
Fachlich geprüft: 6 von 346 (2 %) aktuell, 0 veraltet seit Codeänderung, 340 nie geprüft.
|
||||
|
||||
## Zusammenfassung
|
||||
|
||||
| Paket | Testdateien | Testfälle | grün | rot (Baseline) | übersprungen | mit Beschreibung | fachlich geprüft |
|
||||
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
|
||||
| `sn_basis` | 14 | 94 | 94 | 0 | 0 | 7 von 94 (7 %) | 0 von 94 (0 %) |
|
||||
| `sn_basis` | 14 | 94 | 94 | 0 | 0 | 13 von 94 (14 %) | 6 von 94 (6 %) |
|
||||
| `sn_verfahrensgebiet` | 12 | 208 | 164 | 36 | 8 | 106 von 208 (51 %) | 0 von 208 (0 %) |
|
||||
| `sn_plan41` | 5 | 44 | 43 | 1 | 0 | 1 von 44 (2 %) | 0 von 44 (0 %) |
|
||||
| **Summe** | **31** | **346** | **301** | **37** | **8** | **114 von 346 (33 %)** | **0 von 346 (0 %)** |
|
||||
| **Summe** | **31** | **346** | **301** | **37** | **8** | **120 von 346 (35 %)** | **6 von 346 (2 %)** |
|
||||
|
||||
### Legende
|
||||
|
||||
@@ -52,12 +52,12 @@ Testgruppen:
|
||||
|
||||
| Testfall | prüft | Status | geprüft |
|
||||
| --- | --- | --- | --- |
|
||||
| `TestDataGrabber.test_analyze_source_type_detects_excel` | — (Docstring fehlt) | grün | nie geprüft |
|
||||
| `TestDataGrabber.test_analyze_source_type_returns_unknown_filetype` | — (Docstring fehlt) | grün | nie geprüft |
|
||||
| `TestDataGrabber.test_analyze_source_type_detects_service_when_file_check_fails` | — (Docstring fehlt) | grün | nie geprüft |
|
||||
| `TestDataGrabber.test_analyze_source_type_returns_unbekannte_quelle_on_full_failure` | — (Docstring fehlt) | grün | nie geprüft |
|
||||
| `TestDataGrabber.test_run_returns_success_summary_with_valid_rows` | — (Docstring fehlt) | grün | nie geprüft |
|
||||
| `TestDataGrabber.test_run_returns_failure_summary_without_rows` | — (Docstring fehlt) | grün | nie geprüft |
|
||||
| `TestDataGrabber.test_analyze_source_type_detects_excel` | Prüft, dass eine erreichbare .xlsx-Datei als Quelltyp 'excel' erkannt wird. | grün | geprüft am 2026-09-16 |
|
||||
| `TestDataGrabber.test_analyze_source_type_returns_unknown_filetype` | Prüft, dass eine erreichbare Datei mit unbekannter Endung als 'unbekannter_dateityp' eingestuft wird. | grün | geprüft am 2026-09-16 |
|
||||
| `TestDataGrabber.test_analyze_source_type_detects_service_when_file_check_fails` | Prüft, dass eine Quelle als 'dienst' erkannt wird, wenn die Dateiprüfung fehlschlägt, die URL aber erreichbar ist. | grün | geprüft am 2026-09-16 |
|
||||
| `TestDataGrabber.test_analyze_source_type_returns_unbekannte_quelle_on_full_failure` | Prüft, dass eine Quelle als 'unbekannte_quelle' eingestuft wird, wenn weder Datei- noch Linkprüfung erfolgreich sind. | grün | geprüft am 2026-09-16 |
|
||||
| `TestDataGrabber.test_run_returns_success_summary_with_valid_rows` | Prüft, dass run() bei erfolgreichem Excel-Import eine Erfolgsmeldung mit den geladenen Zeilen liefert. | grün | geprüft am 2026-09-16 |
|
||||
| `TestDataGrabber.test_run_returns_failure_summary_without_rows` | Prüft, dass run() bei nicht erkennbarer Quelle eine Fehlermeldung ohne Zeilen liefert. | grün | geprüft am 2026-09-16 |
|
||||
|
||||
### `Plugin_SN_Basis/tests/test_dateipruefer.py`
|
||||
|
||||
@@ -765,16 +765,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` – 87 von 94 Testfällen ohne Beschreibung
|
||||
|
||||
#### `Plugin_SN_Basis/tests/test_datagrabber.py` (6 von 6) – auch der Modul-Docstring fehlt
|
||||
|
||||
- `TestDataGrabber.test_analyze_source_type_detects_excel`
|
||||
- `TestDataGrabber.test_analyze_source_type_returns_unknown_filetype`
|
||||
- `TestDataGrabber.test_analyze_source_type_detects_service_when_file_check_fails`
|
||||
- `TestDataGrabber.test_analyze_source_type_returns_unbekannte_quelle_on_full_failure`
|
||||
- `TestDataGrabber.test_run_returns_success_summary_with_valid_rows`
|
||||
- `TestDataGrabber.test_run_returns_failure_summary_without_rows`
|
||||
### `sn_basis` – 81 von 94 Testfällen ohne Beschreibung
|
||||
|
||||
#### `Plugin_SN_Basis/tests/test_dateipruefer.py` (6 von 6) – auch der Modul-Docstring fehlt
|
||||
|
||||
|
||||
Reference in New Issue
Block a user