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:
@@ -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`.
|
||||
|
||||
@@ -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"
|
||||
|
||||
File diff suppressed because one or more lines are too long
+52
-52
@@ -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 `c85c88c5c268`)
|
||||
Stand des Prüf-Audits: `docs/status/testpruefungen.json` (SHA-256 `ab63e2f916cd`)
|
||||
|
||||
Gesamt: 3 Pakete, 49 Testdateien, 581 Testfälle – 538 grün, 35 rot (Baseline), 8 übersprungen.
|
||||
Mit Beschreibung (Docstring): 436 von 581 (75 %).
|
||||
Fachlich geprüft: 74 von 581 (13 %) aktuell, 0 veraltet seit Codeänderung, 507 nie geprüft.
|
||||
Fachlich geprüft: 122 von 581 (21 %) aktuell, 0 veraltet seit Codeänderung, 459 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 | 329 | 329 | 0 | 0 | 329 von 329 (100 %) | 74 von 329 (22 %) | 72 von 229 (31 %) |
|
||||
| `sn_basis` | 32 | 329 | 329 | 0 | 0 | 329 von 329 (100 %) | 122 von 329 (37 %) | 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** | **581** | **538** | **35** | **8** | **436 von 581 (75 %)** | **74 von 581 (13 %)** | **145 von 413 (35 %)** |
|
||||
| **Summe** | **49** | **581** | **538** | **35** | **8** | **436 von 581 (75 %)** | **122 von 581 (21 %)** | **145 von 413 (35 %)** |
|
||||
|
||||
### Legende
|
||||
|
||||
@@ -120,30 +120,30 @@ Testgruppen:
|
||||
|
||||
| Testfall | prüft | Status | geprüft |
|
||||
| --- | --- | --- | --- |
|
||||
| `DetermineSpatialFilterTests.test_raumfilter_ohne_liefert_none` | Prüft, dass Raumfilter 'ohne' unabhängig vom Layer immer None liefert. | grün | nie geprüft |
|
||||
| `DetermineSpatialFilterTests.test_fehlender_layer_liefert_none` | Prüft, dass ohne Verfahrensgebiet-Layer kein Raumfilter gebaut wird (Verfahrensgebiet als Raumfilter gewählt, aber kein Verfahrensgebiet-Layer vorhanden). | grün | nie geprüft |
|
||||
| `DetermineSpatialFilterTests.test_unbekannter_raumfilter_liefert_none` | Prüft, dass ein unbekannter Raumfilter-Wert None liefert, statt einen Fehler zu werfen. | grün | nie geprüft |
|
||||
| `DetermineSpatialFilterTests.test_verfahrensgebiet_liefert_extent_und_crs` | Prüft, dass Raumfilter 'Verfahrensgebiet' Extent und CRS des Verfahrensgebiet-Layers liefert. | grün | nie geprüft |
|
||||
| `DetermineSpatialFilterTests.test_verfahrensgebiet_ohne_extent_liefert_none` | Prüft, dass ein Verfahrensgebiet-Layer ohne ermittelbaren Extent None liefert. | grün | nie geprüft |
|
||||
| `DetermineSpatialFilterTests.test_pufferlayer_liefert_extent_des_pufferlayers` | Prüft, dass Raumfilter 'Pufferlayer' Extent und CRS des erzeugten Pufferlayers liefert. | grün | nie geprüft |
|
||||
| `DetermineSpatialFilterTests.test_pufferlayer_ohne_puffer_liefert_none` | Prüft, dass 'Pufferlayer' None liefert, wenn kein Pufferlayer erzeugt werden konnte. | grün | nie geprüft |
|
||||
| `BuildProviderUrlTests.test_wms_liefert_link_unveraendert` | Prüft, dass bei Provider WMS der Link unverändert durchgereicht wird, auch mit Raumfilter. | grün | nie geprüft |
|
||||
| `BuildProviderUrlTests.test_url_praefix_wird_entfernt` | Prüft, dass ein vorangestelltes 'url=' aus dem Link entfernt wird. | grün | nie geprüft |
|
||||
| `BuildProviderUrlTests.test_wfs_baut_standardparameter_und_bbox_mit_crs` | Prüft, dass WFS-Abrufe Standardparameter, umbenanntes TYPENAMES und BBOX mit CRS-URN erhalten. | grün | nie geprüft |
|
||||
| `BuildProviderUrlTests.test_wfs_repariert_doppeltes_fragezeichen` | Prüft, dass ein zweites '?' im WFS-Link zu '&' korrigiert wird, statt eine ungültige URL zu erzeugen. | grün | nie geprüft |
|
||||
| `BuildProviderUrlTests.test_wfs_ohne_raumfilter_setzt_keine_bbox` | Prüft, dass WFS ohne Raumfilter (bbox_geom=None) keinen BBOX-Parameter setzt. | grün | nie geprüft |
|
||||
| `BuildProviderUrlTests.test_rest_provider_haengt_query_endpunkt_an` | Prüft, dass REST/ArcGIS-Links ohne '/query'-Endpunkt automatisch ergänzt werden. | grün | nie geprüft |
|
||||
| `BuildProviderUrlTests.test_rest_provider_mit_bbox_baut_geometry_envelope_und_srid` | Prüft, dass REST-Abrufe mit Raumfilter eine Geometry-Envelope und inSR/outSR aus dem CRS setzen. | grün | nie geprüft |
|
||||
| `BuildProviderUrlTests.test_default_provider_haengt_generischen_bbox_parameter_an` | Prüft, dass ein unbekannter Provider mit Raumfilter einen generischen bbox-Parameter erhält. | grün | nie geprüft |
|
||||
| `BuildProviderUrlTests.test_default_provider_ohne_raumfilter_laesst_query_unveraendert` | Prüft, dass ein unbekannter Provider ohne Raumfilter keinen bbox-Parameter ergänzt. | grün | nie geprüft |
|
||||
| `FetchFeaturesTests.test_wms_liefert_keine_features_ohne_fehler` | Prüft, dass bei Provider WMS kein Featureabruf stattfindet und kein Fehler gemeldet wird. | grün | nie geprüft |
|
||||
| `FetchFeaturesTests.test_abbruch_vor_abruf_liefert_fehlermeldung` | Prüft, dass ein bereits gesetzter Abbruch vor dem eigentlichen Abruf erkannt wird. | grün | nie geprüft |
|
||||
| `FetchFeaturesTests.test_json_featurecollection_wird_geparst` | Prüft, dass eine JSON-FeatureCollection-Antwort in eine Feature-Liste umgewandelt wird. | grün | nie geprüft |
|
||||
| `FetchFeaturesTests.test_netzwerkfehler_wird_als_fehlermeldung_gemeldet` | Prüft, dass ein fehlgeschlagener HTTP-Abruf eine Fehlermeldung statt einer Ausnahme liefert. | grün | nie geprüft |
|
||||
| `FetchFeaturesTests.test_wfs_xml_liefert_anzahl_aus_numberofmatched` | Prüft, dass eine WFS-XML-Antwort ohne JSON die Trefferzahl aus numberOfMatched übernimmt. | grün | nie geprüft |
|
||||
| `DatenabrufOrchestrierungTests.test_fehlende_pflichtfelder_werden_als_ungueltig_gemeldet` | Prüft, dass eine Zeile ohne Link/Provider mit Aktion 'pflichtfelder_fehlen' gemeldet und übersprungen wird. | grün | nie geprüft |
|
||||
| `DatenabrufOrchestrierungTests.test_wms_zeile_ohne_features_landet_in_ausserhalb` | Prüft, dass eine erfolgreich abgerufene WMS-Zeile mit 0 Features als 'ausserhalb' gezählt wird. | grün | nie geprüft |
|
||||
| `DatenabrufOrchestrierungTests.test_abbruch_ueber_progress_stoppt_weitere_zeilen` | Prüft, dass ein Abbruch über das Progress-Objekt die Verarbeitung weiterer Zeilen stoppt. | grün | nie geprüft |
|
||||
| `DetermineSpatialFilterTests.test_raumfilter_ohne_liefert_none` | Prüft, dass Raumfilter 'ohne' unabhängig vom Layer immer None liefert. | grün | geprüft am 2026-09-21 |
|
||||
| `DetermineSpatialFilterTests.test_fehlender_layer_liefert_none` | Prüft, dass ohne Verfahrensgebiet-Layer kein Raumfilter gebaut wird (Verfahrensgebiet als Raumfilter gewählt, aber kein Verfahrensgebiet-Layer vorhanden). | grün | geprüft am 2026-09-21 |
|
||||
| `DetermineSpatialFilterTests.test_unbekannter_raumfilter_liefert_none` | Prüft, dass ein unbekannter Raumfilter-Wert None liefert, statt einen Fehler zu werfen. | grün | geprüft am 2026-09-21 |
|
||||
| `DetermineSpatialFilterTests.test_verfahrensgebiet_liefert_extent_und_crs` | Prüft, dass Raumfilter 'Verfahrensgebiet' Extent und CRS des Verfahrensgebiet-Layers liefert. | grün | geprüft am 2026-09-21 |
|
||||
| `DetermineSpatialFilterTests.test_verfahrensgebiet_ohne_extent_liefert_none` | Prüft, dass ein Verfahrensgebiet-Layer ohne ermittelbaren Extent None liefert. | grün | geprüft am 2026-09-21 |
|
||||
| `DetermineSpatialFilterTests.test_pufferlayer_liefert_extent_des_pufferlayers` | Prüft, dass Raumfilter 'Pufferlayer' Extent und CRS des erzeugten Pufferlayers liefert. | grün | geprüft am 2026-09-21 |
|
||||
| `DetermineSpatialFilterTests.test_pufferlayer_ohne_puffer_liefert_none` | Prüft, dass 'Pufferlayer' None liefert, wenn kein Pufferlayer erzeugt werden konnte. | grün | geprüft am 2026-09-21 |
|
||||
| `BuildProviderUrlTests.test_wms_liefert_link_unveraendert` | Prüft, dass bei Provider WMS der Link unverändert durchgereicht wird, auch mit Raumfilter. | grün | geprüft am 2026-09-21 |
|
||||
| `BuildProviderUrlTests.test_url_praefix_wird_entfernt` | Prüft, dass ein vorangestelltes 'url=' aus dem Link entfernt wird. | grün | geprüft am 2026-09-21 |
|
||||
| `BuildProviderUrlTests.test_wfs_baut_standardparameter_und_bbox_mit_crs` | Prüft, dass WFS-Abrufe Standardparameter, umbenanntes TYPENAMES und BBOX mit CRS-URN erhalten. | grün | geprüft am 2026-09-21 |
|
||||
| `BuildProviderUrlTests.test_wfs_repariert_doppeltes_fragezeichen` | Prüft, dass ein zweites '?' im WFS-Link zu '&' korrigiert wird, statt eine ungültige URL zu erzeugen. | grün | geprüft am 2026-09-21 |
|
||||
| `BuildProviderUrlTests.test_wfs_ohne_raumfilter_setzt_keine_bbox` | Prüft, dass WFS ohne Raumfilter (bbox_geom=None) keinen BBOX-Parameter setzt. | grün | geprüft am 2026-09-21 |
|
||||
| `BuildProviderUrlTests.test_rest_provider_haengt_query_endpunkt_an` | Prüft, dass REST/ArcGIS-Links ohne '/query'-Endpunkt automatisch ergänzt werden. | grün | geprüft am 2026-09-21 |
|
||||
| `BuildProviderUrlTests.test_rest_provider_mit_bbox_baut_geometry_envelope_und_srid` | Prüft, dass REST-Abrufe mit Raumfilter eine Geometry-Envelope und inSR/outSR aus dem CRS setzen. | grün | geprüft am 2026-09-21 |
|
||||
| `BuildProviderUrlTests.test_default_provider_haengt_generischen_bbox_parameter_an` | Prüft, dass ein unbekannter Provider mit Raumfilter einen generischen bbox-Parameter erhält. | grün | geprüft am 2026-09-21 |
|
||||
| `BuildProviderUrlTests.test_default_provider_ohne_raumfilter_laesst_query_unveraendert` | Prüft, dass ein unbekannter Provider ohne Raumfilter keinen bbox-Parameter ergänzt. | grün | geprüft am 2026-09-21 |
|
||||
| `FetchFeaturesTests.test_wms_liefert_keine_features_ohne_fehler` | Prüft, dass bei Provider WMS kein Featureabruf stattfindet und kein Fehler gemeldet wird. | grün | geprüft am 2026-09-21 |
|
||||
| `FetchFeaturesTests.test_abbruch_vor_abruf_liefert_fehlermeldung` | Prüft, dass ein bereits gesetzter Abbruch vor dem eigentlichen Abruf erkannt wird. | grün | geprüft am 2026-09-21 |
|
||||
| `FetchFeaturesTests.test_json_featurecollection_wird_geparst` | Prüft, dass eine JSON-FeatureCollection-Antwort in eine Feature-Liste umgewandelt wird. | grün | geprüft am 2026-09-21 |
|
||||
| `FetchFeaturesTests.test_netzwerkfehler_wird_als_fehlermeldung_gemeldet` | Prüft, dass ein fehlgeschlagener HTTP-Abruf eine Fehlermeldung statt einer Ausnahme liefert. | grün | geprüft am 2026-09-21 |
|
||||
| `FetchFeaturesTests.test_wfs_xml_liefert_anzahl_aus_numberofmatched` | Prüft, dass eine WFS-XML-Antwort ohne JSON die Trefferzahl aus numberOfMatched übernimmt. | grün | geprüft am 2026-09-21 |
|
||||
| `DatenabrufOrchestrierungTests.test_fehlende_pflichtfelder_werden_als_ungueltig_gemeldet` | Prüft, dass eine Zeile ohne Link/Provider mit Aktion 'pflichtfelder_fehlen' gemeldet und übersprungen wird. | grün | geprüft am 2026-09-21 |
|
||||
| `DatenabrufOrchestrierungTests.test_wms_zeile_ohne_features_landet_in_ausserhalb` | Prüft, dass eine erfolgreich abgerufene WMS-Zeile mit 0 Features als 'ausserhalb' gezählt wird. | grün | geprüft am 2026-09-21 |
|
||||
| `DatenabrufOrchestrierungTests.test_abbruch_ueber_progress_stoppt_weitere_zeilen` | Prüft, dass ein Abbruch über das Progress-Objekt die Verarbeitung weiterer Zeilen stoppt. | grün | geprüft am 2026-09-21 |
|
||||
|
||||
### `Plugin_SN_Basis/tests/test_datenschreiber.py`
|
||||
|
||||
@@ -160,24 +160,24 @@ Testgruppen:
|
||||
|
||||
| Testfall | prüft | Status | geprüft |
|
||||
| --- | --- | --- | --- |
|
||||
| `WriteLayerToGpkgTests.test_ungueltiger_layer_liefert_fehlermeldung` | Prüft, dass ein ungültiger Layer eine Fehlermeldung statt eines Absturzes liefert. | grün | nie geprüft |
|
||||
| `WriteLayerToGpkgTests.test_gueltiger_layer_wird_ohne_fehler_geschrieben` | Prüft, dass ein gültiger Layer im Mock-Modus ohne Fehlermeldung geschrieben wird. | grün | nie geprüft |
|
||||
| `ResolveStylePathTests.test_leerer_stilpfad_liefert_none` | Prüft, dass ein leerer oder fehlender Stilpfad None liefert. | grün | nie geprüft |
|
||||
| `ResolveStylePathTests.test_absoluter_vorhandener_stilpfad_wird_aufgeloest` | Prüft, dass ein absoluter, vorhandener Stilpfad normalisiert und unverändert erkannt wird. | grün | nie geprüft |
|
||||
| `ResolveStylePathTests.test_nicht_vorhandener_stilpfad_liefert_none` | Prüft, dass ein nicht vorhandener Stilpfad None liefert, statt einen ungültigen Pfad zurückzugeben. | grün | nie geprüft |
|
||||
| `SchreibeDatenTests.test_ohne_speicherort_wirft_valueerror` | Prüft, dass schreibe_Daten ohne Speicherort einen ValueError wirft. | grün | nie geprüft |
|
||||
| `SchreibeDatenTests.test_eintrag_ohne_gueltigen_layer_wird_uebersprungen` | Prüft, dass ein Eintrag ohne gültigen Layer übersprungen wird und ein Fehlerergebnis meldet. | grün | nie geprüft |
|
||||
| `SchreibeDatenTests.test_erfolgreicher_eintrag_liefert_layer_path_und_thema` | Prüft, dass ein gültiger Layer einen Layer-Path mit GPKG-Pfad und Layername liefert. | grün | nie geprüft |
|
||||
| `SchreibeDatenTests.test_ohne_thema_wird_ident_als_layername_verwendet` | Prüft, dass ohne passendes Thema in processed_results der ident als Layername verwendet wird. | grün | nie geprüft |
|
||||
| `LadeLayerTests.test_ohne_layer_path_wird_uebersprungen` | Prüft, dass ein Eintrag ohne layer_path übersprungen wird, ohne einen Fehler zu melden. | grün | nie geprüft |
|
||||
| `LadeLayerTests.test_gueltiger_layer_wird_dem_projekt_hinzugefuegt` | Prüft, dass ein gültig ladbarer Layer ohne Fehlermeldung verarbeitet wird. | grün | nie geprüft |
|
||||
| `LadeLayerTests.test_ungueltiger_layer_meldet_layer_nicht_gefunden` | Prüft, dass ein ungültig ladbarer Layer als 'layer_nicht_gefunden' gemeldet wird. | grün | nie geprüft |
|
||||
| `SchreibeLogTests.test_ohne_speicherort_wirft_valueerror` | Prüft, dass schreibe_log ohne Speicherort einen ValueError wirft. | grün | nie geprüft |
|
||||
| `SchreibeLogTests.test_schreibt_json_datei_mit_ergebnissen_und_gibt_pfad_zurueck` | Prüft, dass schreibe_log eine lesbare JSON-Log-Datei erzeugt und deren Pfad zurückgibt. | grün | nie geprüft |
|
||||
| `StoreStyleInGpkgTests.test_legt_tabelle_an_und_speichert_stil_als_default` | Prüft, dass _store_style_in_gpkg die layer_styles-Tabelle anlegt und den Stil als Default speichert. | grün | nie geprüft |
|
||||
| `StoreStyleInGpkgTests.test_setzt_bisherigen_default_stil_desselben_layers_zurueck` | Prüft, dass _store_style_in_gpkg den useAsDefault-Wert vorhandener Stile desselben Layers zurücksetzt. | grün | nie geprüft |
|
||||
| `StoreStyleInGpkgTests.test_liest_geometriespalte_ueber_geometrycolumn_aus` | Prüft, dass _store_style_in_gpkg die Geometriespalte eines Layers mit geometryColumn() übernimmt. | grün | nie geprüft |
|
||||
| `StoreStyleInGpkgTests.test_fehlender_stilpfad_meldet_fehler_ueber_pruefmanager_statt_absturz` | Prüft, dass ein nicht lesbarer Stilpfad über den Pruefmanager gemeldet wird statt eine Exception zu werfen. | grün | nie geprüft |
|
||||
| `WriteLayerToGpkgTests.test_ungueltiger_layer_liefert_fehlermeldung` | Prüft, dass ein ungültiger Layer eine Fehlermeldung statt eines Absturzes liefert. | grün | geprüft am 2026-09-21 |
|
||||
| `WriteLayerToGpkgTests.test_gueltiger_layer_wird_ohne_fehler_geschrieben` | Prüft, dass ein gültiger Layer im Mock-Modus ohne Fehlermeldung geschrieben wird. | grün | geprüft am 2026-09-21 |
|
||||
| `ResolveStylePathTests.test_leerer_stilpfad_liefert_none` | Prüft, dass ein leerer oder fehlender Stilpfad None liefert. | grün | geprüft am 2026-09-21 |
|
||||
| `ResolveStylePathTests.test_absoluter_vorhandener_stilpfad_wird_aufgeloest` | Prüft, dass ein absoluter, vorhandener Stilpfad normalisiert und unverändert erkannt wird. | grün | geprüft am 2026-09-21 |
|
||||
| `ResolveStylePathTests.test_nicht_vorhandener_stilpfad_liefert_none` | Prüft, dass ein nicht vorhandener Stilpfad None liefert, statt einen ungültigen Pfad zurückzugeben. | grün | geprüft am 2026-09-21 |
|
||||
| `SchreibeDatenTests.test_ohne_speicherort_wirft_valueerror` | Prüft, dass schreibe_Daten ohne Speicherort einen ValueError wirft. | grün | geprüft am 2026-09-21 |
|
||||
| `SchreibeDatenTests.test_eintrag_ohne_gueltigen_layer_wird_uebersprungen` | Prüft, dass ein Eintrag ohne gültigen Layer übersprungen wird und ein Fehlerergebnis meldet. | grün | geprüft am 2026-09-21 |
|
||||
| `SchreibeDatenTests.test_erfolgreicher_eintrag_liefert_layer_path_und_thema` | Prüft, dass ein gültiger Layer einen Layer-Path mit GPKG-Pfad und Layername liefert. | grün | geprüft am 2026-09-21 |
|
||||
| `SchreibeDatenTests.test_ohne_thema_wird_ident_als_layername_verwendet` | Prüft, dass ohne passendes Thema in processed_results der ident als Layername verwendet wird. | grün | geprüft am 2026-09-21 |
|
||||
| `LadeLayerTests.test_ohne_layer_path_wird_uebersprungen` | Prüft, dass ein Eintrag ohne layer_path übersprungen wird, ohne einen Fehler zu melden. | grün | geprüft am 2026-09-21 |
|
||||
| `LadeLayerTests.test_gueltiger_layer_wird_dem_projekt_hinzugefuegt` | Prüft, dass ein gültig ladbarer Layer ohne Fehlermeldung verarbeitet wird. | grün | geprüft am 2026-09-21 |
|
||||
| `LadeLayerTests.test_ungueltiger_layer_meldet_layer_nicht_gefunden` | Prüft, dass ein ungültig ladbarer Layer als 'layer_nicht_gefunden' gemeldet wird. | grün | geprüft am 2026-09-21 |
|
||||
| `SchreibeLogTests.test_ohne_speicherort_wirft_valueerror` | Prüft, dass schreibe_log ohne Speicherort einen ValueError wirft. | grün | geprüft am 2026-09-21 |
|
||||
| `SchreibeLogTests.test_schreibt_json_datei_mit_ergebnissen_und_gibt_pfad_zurueck` | Prüft, dass schreibe_log eine lesbare JSON-Log-Datei erzeugt und deren Pfad zurückgibt. | grün | geprüft am 2026-09-21 |
|
||||
| `StoreStyleInGpkgTests.test_legt_tabelle_an_und_speichert_stil_als_default` | Prüft, dass _store_style_in_gpkg die layer_styles-Tabelle anlegt und den Stil als Default speichert. | grün | geprüft am 2026-09-21 |
|
||||
| `StoreStyleInGpkgTests.test_setzt_bisherigen_default_stil_desselben_layers_zurueck` | Prüft, dass _store_style_in_gpkg den useAsDefault-Wert vorhandener Stile desselben Layers zurücksetzt. | grün | geprüft am 2026-09-21 |
|
||||
| `StoreStyleInGpkgTests.test_liest_geometriespalte_ueber_geometrycolumn_aus` | Prüft, dass _store_style_in_gpkg die Geometriespalte eines Layers mit geometryColumn() übernimmt. | grün | geprüft am 2026-09-21 |
|
||||
| `StoreStyleInGpkgTests.test_fehlender_stilpfad_meldet_fehler_ueber_pruefmanager_statt_absturz` | Prüft, dass ein nicht lesbarer Stilpfad über den Pruefmanager gemeldet wird statt eine Exception zu werfen. | grün | geprüft am 2026-09-21 |
|
||||
|
||||
### `Plugin_SN_Basis/tests/test_dockmanager.py`
|
||||
|
||||
@@ -189,12 +189,12 @@ Testgruppen:
|
||||
|
||||
| Testfall | prüft | Status | geprüft |
|
||||
| --- | --- | --- | --- |
|
||||
| `DockManagerShowTests.test_none_dock_meldet_fehler_und_zeigt_nichts_an` | Prüft, dass ein fehlendes Dock-Widget (None) einen Fehler meldet und nichts anzeigt. | grün | nie geprüft |
|
||||
| `DockManagerShowTests.test_setzt_objectname_wenn_leer` | Prüft, dass ein Dock ohne Namen einen technischen Namen mit dem Präfix 'sn_dock_' erhält. | grün | nie geprüft |
|
||||
| `DockManagerShowTests.test_entfernt_andere_sn_docks_aber_nicht_sich_selbst` | Prüft, dass andere sn_basis-Docks entfernt werden, das neue Dock und fremde Widgets aber unangetastet bleiben. | grün | nie geprüft |
|
||||
| `DockManagerShowTests.test_zeigt_neues_dock_mit_default_area_an` | Prüft, dass ein neues Dock mit der Standard-Area (DockAreaRight) angezeigt wird. | grün | nie geprüft |
|
||||
| `DockManagerShowTests.test_fehler_beim_entfernen_wird_als_warnung_gemeldet` | Prüft, dass ein Fehler beim Entfernen alter Docks nur gewarnt und das neue Dock trotzdem angezeigt wird. | grün | nie geprüft |
|
||||
| `DockManagerShowTests.test_fehler_beim_anzeigen_wird_gemeldet` | Prüft, dass ein Fehler beim Anzeigen des Docks als Fehler gemeldet wird. | grün | nie geprüft |
|
||||
| `DockManagerShowTests.test_none_dock_meldet_fehler_und_zeigt_nichts_an` | Prüft, dass ein fehlendes Dock-Widget (None) einen Fehler meldet und nichts anzeigt. | grün | geprüft am 2026-09-21 |
|
||||
| `DockManagerShowTests.test_setzt_objectname_wenn_leer` | Prüft, dass ein Dock ohne Namen einen technischen Namen mit dem Präfix 'sn_dock_' erhält. | grün | geprüft am 2026-09-21 |
|
||||
| `DockManagerShowTests.test_entfernt_andere_sn_docks_aber_nicht_sich_selbst` | Prüft, dass andere sn_basis-Docks entfernt werden, das neue Dock und fremde Widgets aber unangetastet bleiben. | grün | geprüft am 2026-09-21 |
|
||||
| `DockManagerShowTests.test_zeigt_neues_dock_mit_default_area_an` | Prüft, dass ein neues Dock mit der Standard-Area (DockAreaRight) angezeigt wird. | grün | geprüft am 2026-09-21 |
|
||||
| `DockManagerShowTests.test_fehler_beim_entfernen_wird_als_warnung_gemeldet` | Prüft, dass ein Fehler beim Entfernen alter Docks nur gewarnt und das neue Dock trotzdem angezeigt wird. | grün | geprüft am 2026-09-21 |
|
||||
| `DockManagerShowTests.test_fehler_beim_anzeigen_wird_gemeldet` | Prüft, dass ein Fehler beim Anzeigen des Docks als Fehler gemeldet wird. | grün | geprüft am 2026-09-21 |
|
||||
|
||||
### `Plugin_SN_Basis/tests/test_excel_importer.py`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user