Test-Audit sn_basis fortgesetzt: test_datenabruf, test_datenschreiber, test_dockmanager (#76)

48 weitere Testfälle in sn_basis fachlich geprüft und markiert (test_datenabruf.py: 24,
test_datenschreiber.py: 18, test_dockmanager.py: 6). Dabei zwei fragliche Codestellen
gefunden und als offene Punkte in STATUS.md festgehalten:
- Basis #77: Datenabruf._fetch_features() klassifiziert WMS-Zeilen immer als "ausserhalb",
  ohne dass je ein Layer geschrieben wird; der Kommentar "caller behandelt WMS separat"
  trifft nicht zu.
- Basis #78: Datenschreiber.schreibe_log() meldet Erfolg mit dem sachfremden Aktionscode
  "standarddatei_vorschlagen" (vermutlich Copy-Paste-Rest), aktuell folgenlos.

Testkatalog neu erzeugt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-21 14:49:28 +02:00
co-authored by Claude Sonnet 5
parent 159efc27a7
commit a6dfbefbd4
4 changed files with 266 additions and 59 deletions
+15
View File
@@ -80,6 +80,21 @@ spätere Phase und beginnt erst, wenn die Test-Baseline grün ist und das Projek
(`DataGrabber.py`, `excel_importer.py`) den Parameter `standarddatei`. `TestDateipruefer.test_
standarddatei_vorschlagen` bleibt bis zur Entscheidung bewusst ohne Gegenstück für den Fehlerfall
(kein Testfall-„nie geprüft", sondern Verhalten ungeklärt) — siehe Kommentar im Testfall.
17. **WMS-Zeilen im Datenabruf ungeklärt (Basis #77).** `Datenabruf._fetch_features()` liefert für
`provider == "WMS"` immer `([], None)`, der Kommentar dort verspricht „caller behandelt WMS separat" —
das tut `datenabruf()` aber nicht: jede WMS-Zeile durchläuft dieselbe relevant/ausserhalb-Klassifizierung
wie WFS/REST/OGR und landet deshalb zwangsläufig in `ausserhalb`, ohne dass je ein Layer geschrieben
wird. Offen: ist das gewollt (WMS-Kartendienste werden in diesem Pfad bewusst nicht geladen) oder fehlt
die im Kommentar versprochene Sonderbehandlung? `DatenabrufOrchestrierungTests.
test_wms_zeile_ohne_features_landet_in_ausserhalb` dokumentiert bewusst den Ist-Zustand, nicht den
bestätigt gewünschten — siehe Kommentar im Testfall.
18. **Falscher Aktionscode in `Datenschreiber.schreibe_log()` (Basis #78).** Der Erfolg wird mit
`aktion="standarddatei_vorschlagen"` gemeldet — demselben Code, den `Dateipruefer`/`Pruefmanager` für
die Standarddatei-Rückfrage nutzen (Punkt 16). Aktuell folgenlos, weil `Pruefmanager.verarbeite()` bei
`ok=True` sofort zurückkehrt, bevor die Aktion ausgewertet wird — aber missverständlich und zerbrechlich
bei künftigem Code, der auf diese Aktion filtert. `SchreibeLogTests.
test_schreibt_json_datei_mit_ergebnissen_und_gibt_pfad_zurueck` dokumentiert bewusst den Ist-Zustand —
siehe Kommentar im Testfall.
**Hinweis zum lokalen Stand (04.09.2026):** Die Klone `Plugin_SN_Verfahrensgebiet` (4 Commits: PR #43, PR #45)
und `Repository` (Release 26.8.4-unstable) liegen hinter `origin`. Aktualisieren mit `python scripts/hallo.py`.
+192
View File
@@ -119,6 +119,198 @@
"datum": "2026-09-17",
"hash": "00cfdb7d23d5"
},
"sn_basis.tests.test_datenabruf.BuildProviderUrlTests.test_default_provider_haengt_generischen_bbox_parameter_an": {
"datum": "2026-09-21",
"hash": "db91265822d6"
},
"sn_basis.tests.test_datenabruf.BuildProviderUrlTests.test_default_provider_ohne_raumfilter_laesst_query_unveraendert": {
"datum": "2026-09-21",
"hash": "ae305bc95c08"
},
"sn_basis.tests.test_datenabruf.BuildProviderUrlTests.test_rest_provider_haengt_query_endpunkt_an": {
"datum": "2026-09-21",
"hash": "006e39a2e481"
},
"sn_basis.tests.test_datenabruf.BuildProviderUrlTests.test_rest_provider_mit_bbox_baut_geometry_envelope_und_srid": {
"datum": "2026-09-21",
"hash": "419db8104fe9"
},
"sn_basis.tests.test_datenabruf.BuildProviderUrlTests.test_url_praefix_wird_entfernt": {
"datum": "2026-09-21",
"hash": "0fd137b2ee4b"
},
"sn_basis.tests.test_datenabruf.BuildProviderUrlTests.test_wfs_baut_standardparameter_und_bbox_mit_crs": {
"datum": "2026-09-21",
"hash": "4d8a5a034b66"
},
"sn_basis.tests.test_datenabruf.BuildProviderUrlTests.test_wfs_ohne_raumfilter_setzt_keine_bbox": {
"datum": "2026-09-21",
"hash": "89bc47b753aa"
},
"sn_basis.tests.test_datenabruf.BuildProviderUrlTests.test_wfs_repariert_doppeltes_fragezeichen": {
"datum": "2026-09-21",
"hash": "637f4ef9773a"
},
"sn_basis.tests.test_datenabruf.BuildProviderUrlTests.test_wms_liefert_link_unveraendert": {
"datum": "2026-09-21",
"hash": "50bcb7d3148a"
},
"sn_basis.tests.test_datenabruf.DatenabrufOrchestrierungTests.test_abbruch_ueber_progress_stoppt_weitere_zeilen": {
"datum": "2026-09-21",
"hash": "06730e19b7b9"
},
"sn_basis.tests.test_datenabruf.DatenabrufOrchestrierungTests.test_fehlende_pflichtfelder_werden_als_ungueltig_gemeldet": {
"datum": "2026-09-21",
"hash": "6a32846a1eb1"
},
"sn_basis.tests.test_datenabruf.DatenabrufOrchestrierungTests.test_wms_zeile_ohne_features_landet_in_ausserhalb": {
"datum": "2026-09-21",
"hash": "b5415522be70"
},
"sn_basis.tests.test_datenabruf.DetermineSpatialFilterTests.test_fehlender_layer_liefert_none": {
"datum": "2026-09-21",
"hash": "2d593c0b6e97"
},
"sn_basis.tests.test_datenabruf.DetermineSpatialFilterTests.test_pufferlayer_liefert_extent_des_pufferlayers": {
"datum": "2026-09-21",
"hash": "1daa2cd15c6a"
},
"sn_basis.tests.test_datenabruf.DetermineSpatialFilterTests.test_pufferlayer_ohne_puffer_liefert_none": {
"datum": "2026-09-21",
"hash": "f3648846089e"
},
"sn_basis.tests.test_datenabruf.DetermineSpatialFilterTests.test_raumfilter_ohne_liefert_none": {
"datum": "2026-09-21",
"hash": "6a388d156309"
},
"sn_basis.tests.test_datenabruf.DetermineSpatialFilterTests.test_unbekannter_raumfilter_liefert_none": {
"datum": "2026-09-21",
"hash": "7e647695312a"
},
"sn_basis.tests.test_datenabruf.DetermineSpatialFilterTests.test_verfahrensgebiet_liefert_extent_und_crs": {
"datum": "2026-09-21",
"hash": "cebbb9f28131"
},
"sn_basis.tests.test_datenabruf.DetermineSpatialFilterTests.test_verfahrensgebiet_ohne_extent_liefert_none": {
"datum": "2026-09-21",
"hash": "3665e39cebde"
},
"sn_basis.tests.test_datenabruf.FetchFeaturesTests.test_abbruch_vor_abruf_liefert_fehlermeldung": {
"datum": "2026-09-21",
"hash": "12b1d6288c42"
},
"sn_basis.tests.test_datenabruf.FetchFeaturesTests.test_json_featurecollection_wird_geparst": {
"datum": "2026-09-21",
"hash": "53b6b78bab8b"
},
"sn_basis.tests.test_datenabruf.FetchFeaturesTests.test_netzwerkfehler_wird_als_fehlermeldung_gemeldet": {
"datum": "2026-09-21",
"hash": "c2a85986efe8"
},
"sn_basis.tests.test_datenabruf.FetchFeaturesTests.test_wfs_xml_liefert_anzahl_aus_numberofmatched": {
"datum": "2026-09-21",
"hash": "c77af9bd078b"
},
"sn_basis.tests.test_datenabruf.FetchFeaturesTests.test_wms_liefert_keine_features_ohne_fehler": {
"datum": "2026-09-21",
"hash": "878771057e04"
},
"sn_basis.tests.test_datenschreiber.LadeLayerTests.test_gueltiger_layer_wird_dem_projekt_hinzugefuegt": {
"datum": "2026-09-21",
"hash": "9d7193dfe584"
},
"sn_basis.tests.test_datenschreiber.LadeLayerTests.test_ohne_layer_path_wird_uebersprungen": {
"datum": "2026-09-21",
"hash": "792dabdcd97c"
},
"sn_basis.tests.test_datenschreiber.LadeLayerTests.test_ungueltiger_layer_meldet_layer_nicht_gefunden": {
"datum": "2026-09-21",
"hash": "8e1f436c1225"
},
"sn_basis.tests.test_datenschreiber.ResolveStylePathTests.test_absoluter_vorhandener_stilpfad_wird_aufgeloest": {
"datum": "2026-09-21",
"hash": "6f5e91c64fff"
},
"sn_basis.tests.test_datenschreiber.ResolveStylePathTests.test_leerer_stilpfad_liefert_none": {
"datum": "2026-09-21",
"hash": "2209002c5cdd"
},
"sn_basis.tests.test_datenschreiber.ResolveStylePathTests.test_nicht_vorhandener_stilpfad_liefert_none": {
"datum": "2026-09-21",
"hash": "63fbf010d51a"
},
"sn_basis.tests.test_datenschreiber.SchreibeDatenTests.test_eintrag_ohne_gueltigen_layer_wird_uebersprungen": {
"datum": "2026-09-21",
"hash": "7209c778971b"
},
"sn_basis.tests.test_datenschreiber.SchreibeDatenTests.test_erfolgreicher_eintrag_liefert_layer_path_und_thema": {
"datum": "2026-09-21",
"hash": "5afabcf4df68"
},
"sn_basis.tests.test_datenschreiber.SchreibeDatenTests.test_ohne_speicherort_wirft_valueerror": {
"datum": "2026-09-21",
"hash": "beb0ef913056"
},
"sn_basis.tests.test_datenschreiber.SchreibeDatenTests.test_ohne_thema_wird_ident_als_layername_verwendet": {
"datum": "2026-09-21",
"hash": "f8d4cdff4193"
},
"sn_basis.tests.test_datenschreiber.SchreibeLogTests.test_ohne_speicherort_wirft_valueerror": {
"datum": "2026-09-21",
"hash": "10b44f5e3001"
},
"sn_basis.tests.test_datenschreiber.SchreibeLogTests.test_schreibt_json_datei_mit_ergebnissen_und_gibt_pfad_zurueck": {
"datum": "2026-09-21",
"hash": "0d66a75e3e47"
},
"sn_basis.tests.test_datenschreiber.StoreStyleInGpkgTests.test_fehlender_stilpfad_meldet_fehler_ueber_pruefmanager_statt_absturz": {
"datum": "2026-09-21",
"hash": "dd56f7b08b30"
},
"sn_basis.tests.test_datenschreiber.StoreStyleInGpkgTests.test_legt_tabelle_an_und_speichert_stil_als_default": {
"datum": "2026-09-21",
"hash": "aabc43a7e54d"
},
"sn_basis.tests.test_datenschreiber.StoreStyleInGpkgTests.test_liest_geometriespalte_ueber_geometrycolumn_aus": {
"datum": "2026-09-21",
"hash": "89e54e04844f"
},
"sn_basis.tests.test_datenschreiber.StoreStyleInGpkgTests.test_setzt_bisherigen_default_stil_desselben_layers_zurueck": {
"datum": "2026-09-21",
"hash": "81ce39c5698e"
},
"sn_basis.tests.test_datenschreiber.WriteLayerToGpkgTests.test_gueltiger_layer_wird_ohne_fehler_geschrieben": {
"datum": "2026-09-21",
"hash": "f71a4fc1c402"
},
"sn_basis.tests.test_datenschreiber.WriteLayerToGpkgTests.test_ungueltiger_layer_liefert_fehlermeldung": {
"datum": "2026-09-21",
"hash": "c28e1d77d4b8"
},
"sn_basis.tests.test_dockmanager.DockManagerShowTests.test_entfernt_andere_sn_docks_aber_nicht_sich_selbst": {
"datum": "2026-09-21",
"hash": "24382480ecf7"
},
"sn_basis.tests.test_dockmanager.DockManagerShowTests.test_fehler_beim_anzeigen_wird_gemeldet": {
"datum": "2026-09-21",
"hash": "d8e7624c3732"
},
"sn_basis.tests.test_dockmanager.DockManagerShowTests.test_fehler_beim_entfernen_wird_als_warnung_gemeldet": {
"datum": "2026-09-21",
"hash": "a2936c8db946"
},
"sn_basis.tests.test_dockmanager.DockManagerShowTests.test_none_dock_meldet_fehler_und_zeigt_nichts_an": {
"datum": "2026-09-21",
"hash": "c4fdeb71426d"
},
"sn_basis.tests.test_dockmanager.DockManagerShowTests.test_setzt_objectname_wenn_leer": {
"datum": "2026-09-21",
"hash": "c72a31202f92"
},
"sn_basis.tests.test_dockmanager.DockManagerShowTests.test_zeigt_neues_dock_mit_default_area_an": {
"datum": "2026-09-21",
"hash": "bd2cdb4f27a1"
},
"sn_basis.tests.test_laenderkennung.TestGetLaenderkennung.test_bekannter_praefix_gibt_kennung_zurueck": {
"datum": "2026-09-17",
"hash": "c1fe3fb105a9"