Tests für sn_basis/ui/base_dockwidget.py::closeEvent (Issue #65).
flowchart TD ++32Testdateien329Testfälle329grün0rot (Baseline)0übersprungen100%mit Docstring22%geprüft72ohne TestbezugTests für sn_basis/ui/base_dockwidget.py::closeEvent (Issue #65).
CloseEventTests 5flowchart TD root(["test_base_dockwidget.py"]) class root rootnode root --> g1["CloseEventTests (5)"] @@ -183,7 +183,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;
Testfall prüft Status geprüft CloseEventTests
test_ruft_cleanup_aller_tabs_aufPrüft, dass closeEvent cleanup() auf allen Tabs des Dock-Widgets aufruft. grün nie geprüft CloseEventTests
test_ignoriert_tabs_ohne_cleanupPrüft, dass ein Tab ohne cleanup()-Methode nicht zu einem Fehler führt. grün nie geprüft CloseEventTests
test_fehler_in_cleanup_wird_abgefangen_und_andere_tabs_laufen_weiterPrüft, dass ein Fehler in cleanup() eines Tabs nicht die übrigen Tabs verhindert. grün nie geprüft CloseEventTests
test_setzt_toolbar_action_zurueckPrüft, dass closeEvent die verknüpfte Toolbar-Action auf 'nicht gedrückt' zurücksetzt. grün nie geprüft CloseEventTests
test_ohne_action_wird_nichts_zurueckgesetztPrüft, dass closeEvent ohne verknüpfte Toolbar-Action keine Ausnahme wirft. grün nie geprüft — (Docstring fehlt)
Keine Testfälle: Die Datei enthält keine unittest.TestCase-Klasse – sie ist eine reine Hilfsdatei, die beim Testlauf nur importiert wird.
— (Docstring fehlt)
TestDataGrabber 8flowchart TD + classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
Testfall prüft Status geprüft CloseEventTests
test_ruft_cleanup_aller_tabs_aufPrüft, dass closeEvent cleanup() auf allen Tabs des Dock-Widgets aufruft. grün geprüft am 2026-09-21 CloseEventTests
test_ignoriert_tabs_ohne_cleanupPrüft, dass ein Tab ohne cleanup()-Methode nicht zu einem Fehler führt. grün geprüft am 2026-09-21 CloseEventTests
test_fehler_in_cleanup_wird_abgefangen_und_andere_tabs_laufen_weiterPrüft, dass ein Fehler in cleanup() eines Tabs nicht die übrigen Tabs verhindert. grün geprüft am 2026-09-21 CloseEventTests
test_setzt_toolbar_action_zurueckPrüft, dass closeEvent die verknüpfte Toolbar-Action auf 'nicht gedrückt' zurücksetzt. grün geprüft am 2026-09-21 CloseEventTests
test_ohne_action_wird_nichts_zurueckgesetztPrüft, dass closeEvent ohne verknüpfte Toolbar-Action keine Ausnahme wirft. grün geprüft am 2026-09-21 — (Docstring fehlt)
Keine Testfälle: Die Datei enthält keine unittest.TestCase-Klasse – sie ist eine reine Hilfsdatei, die beim Testlauf nur importiert wird.
— (Docstring fehlt)
TestDataGrabber 8flowchart TD root(["test_datagrabber.py"]) class root rootnode root --> g1["TestDataGrabber (8)"] @@ -208,7 +208,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;
Testfall prüft Status geprüft TestDataGrabber
test_analyze_source_type_detects_excelPrü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_filetypePrü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_failsPrü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_failurePrü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_rowsPrü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_rowsPrüft, dass run() bei nicht erkennbarer Quelle eine Fehlermeldung ohne Zeilen liefert. grün geprüft am 2026-09-16 TestDataGrabber
test_aggregate_results_mit_zeilen_liefert_erfolgsergebnisPrüft, dass _aggregate_results bei vorhandenen Zeilen ein Erfolgsergebnis mit Zeilenzahl liefert. grün nie geprüft TestDataGrabber
test_aggregate_results_ohne_zeilen_liefert_keine_validen_eintraegePrüft, dass _aggregate_results ohne Zeilen ok=False mit Aktion 'keine_validen_eintraege' liefert. grün nie geprüft — (Docstring fehlt)
TestDateipruefer 17flowchart TD + classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
Testfall prüft Status geprüft TestDataGrabber
test_analyze_source_type_detects_excelPrü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_filetypePrü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_failsPrü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_failurePrü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_rowsPrü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_rowsPrüft, dass run() bei nicht erkennbarer Quelle eine Fehlermeldung ohne Zeilen liefert. grün geprüft am 2026-09-16 TestDataGrabber
test_aggregate_results_mit_zeilen_liefert_erfolgsergebnisPrüft, dass _aggregate_results bei vorhandenen Zeilen ein Erfolgsergebnis mit Zeilenzahl liefert. grün geprüft am 2026-09-21 TestDataGrabber
test_aggregate_results_ohne_zeilen_liefert_keine_validen_eintraegePrüft, dass _aggregate_results ohne Zeilen ok=False mit Aktion 'keine_validen_eintraege' liefert. grün geprüft am 2026-09-21 — (Docstring fehlt)
TestDateipruefer 17flowchart TD root(["test_dateipruefer.py"]) class root rootnode root --> g1["TestDateipruefer (17)"] @@ -251,7 +251,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;
Testfall prüft Status geprüft TestDateipruefer
test_leereingabe_erlaubtPrüft, dass eine leere Pfadangabe bei leereingabe_erlaubt=True als 'leereingabe_erlaubt' ohne Kontext gemeldet wird. grün geprüft am 2026-09-17 TestDateipruefer
test_leereingabe_nicht_erlaubtPrüft, dass eine leere Pfadangabe ohne leereingabe_erlaubt als 'leereingabe_nicht_erlaubt' abgelehnt wird. grün geprüft am 2026-09-17 TestDateipruefer
test_standarddatei_vorschlagenPrüft, dass bei leerer Pfadangabe mit gesetzter Standarddatei 'standarddatei_vorschlagen' mit dem Standardpfad als Kontext geliefert wird. grün nie geprüft TestDateipruefer
test_temporaer_erlaubtPrüft, dass eine leere Pfadangabe bei temporaer_erlaubt=True als 'temporaer_erlaubt' ohne Kontext gemeldet wird. grün geprüft am 2026-09-17 TestDateipruefer
test_datei_nicht_gefundenPrüft, dass ein nicht existierender Dateipfad als 'datei_nicht_gefunden' mit dem Pfad als Kontext abgelehnt wird. grün geprüft am 2026-09-17 TestDateipruefer
test_datei_okPrüft, dass ein existierender Dateipfad als 'ok' mit dem Pfad als Kontext bestätigt wird. grün geprüft am 2026-09-17 TestDateipruefer
test_erkenne_dateityp_unterscheidet_excel_datenbank_und_unbekanntPrüft, dass erkenne_dateityp .xlsx als 'excel', .gpkg/.sqlite als 'datenbank' und Rest als 'unbekannt' erkennt. grün nie geprüft TestDateipruefer
test_pfad_verbindet_relativen_pfad_mit_basispfadPrüft, dass _pfad einen relativen Pfad mit dem Basisverzeichnis verbindet. grün nie geprüft TestDateipruefer
test_pfad_laesst_absoluten_pfad_unveraendertPrüft, dass _pfad einen bereits absoluten Pfad nicht mit dem Basisverzeichnis verbindet. grün nie geprüft TestDateipruefer
test_ist_gueltiger_gpkg_pfad_akzeptiert_vorhandenes_verzeichnisPrüft, dass ein .gpkg-Pfad mit vorhandenem Zielverzeichnis als gültig gilt. grün nie geprüft TestDateipruefer
test_ist_gueltiger_gpkg_pfad_lehnt_falsche_endung_abPrüft, dass ein Pfad ohne .gpkg-Endung als ungültig gilt, auch bei vorhandenem Verzeichnis. grün nie geprüft TestDateipruefer
test_ist_gueltiger_gpkg_pfad_lehnt_fehlendes_verzeichnis_abPrüft, dass ein .gpkg-Pfad in einem nicht vorhandenen Verzeichnis als ungültig gilt. grün nie geprüft TestDateipruefer
test_ist_leer_erkennt_none_und_nicht_string_als_leerPrüft, dass _ist_leer sowohl None als auch einen Nicht-String-Wert als leer meldet. grün nie geprüft TestDateipruefer
test_ist_leer_erkennt_reinen_whitespace_als_leerPrüft, dass _ist_leer eine Eingabe aus reinen Leerzeichen als leer meldet. grün nie geprüft TestDateipruefer
test_ist_leer_meldet_pfad_mit_sichtbaren_zeichen_nicht_als_leerPrüft, dass _ist_leer einen Pfad mit sichtbaren Zeichen nicht als leer meldet. grün nie geprüft TestDateipruefer
test_leere_eingabe_bevorzugt_leereingabe_erlaubt_vor_standarddateiPrüft, dass bei leerer Eingabe leereingabe_erlaubt Vorrang vor einer gesetzten Standarddatei hat. grün nie geprüft TestDateipruefer
test_leere_eingabe_bevorzugt_standarddatei_vor_temporaer_erlaubtPrüft, dass bei leerer Eingabe eine gesetzte Standarddatei Vorrang vor temporaer_erlaubt hat. grün nie geprüft Tests für sn_basis/modules/Datenabruf.py (Datenabruf-Kernpipeline, Issue #63).
DetermineSpatialFilterTests 7BuildProviderUrlTests 9FetchFeaturesTests 5DatenabrufOrchestrierungTests 3flowchart TD + classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
Testfall prüft Status geprüft TestDateipruefer
test_leereingabe_erlaubtPrüft, dass eine leere Pfadangabe bei leereingabe_erlaubt=True als 'leereingabe_erlaubt' ohne Kontext gemeldet wird. grün geprüft am 2026-09-17 TestDateipruefer
test_leereingabe_nicht_erlaubtPrüft, dass eine leere Pfadangabe ohne leereingabe_erlaubt als 'leereingabe_nicht_erlaubt' abgelehnt wird. grün geprüft am 2026-09-17 TestDateipruefer
test_standarddatei_vorschlagenPrüft, dass bei leerer Pfadangabe mit gesetzter Standarddatei 'standarddatei_vorschlagen' mit dem Standardpfad als Kontext geliefert wird. grün geprüft am 2026-09-21 TestDateipruefer
test_temporaer_erlaubtPrüft, dass eine leere Pfadangabe bei temporaer_erlaubt=True als 'temporaer_erlaubt' ohne Kontext gemeldet wird. grün geprüft am 2026-09-17 TestDateipruefer
test_datei_nicht_gefundenPrüft, dass ein nicht existierender Dateipfad als 'datei_nicht_gefunden' mit dem Pfad als Kontext abgelehnt wird. grün geprüft am 2026-09-17 TestDateipruefer
test_datei_okPrüft, dass ein existierender Dateipfad als 'ok' mit dem Pfad als Kontext bestätigt wird. grün geprüft am 2026-09-17 TestDateipruefer
test_erkenne_dateityp_unterscheidet_excel_datenbank_und_unbekanntPrüft, dass erkenne_dateityp .xlsx als 'excel', .gpkg/.sqlite als 'datenbank' und Rest als 'unbekannt' erkennt. grün geprüft am 2026-09-21 TestDateipruefer
test_pfad_verbindet_relativen_pfad_mit_basispfadPrüft, dass _pfad einen relativen Pfad mit dem Basisverzeichnis verbindet. grün geprüft am 2026-09-21 TestDateipruefer
test_pfad_laesst_absoluten_pfad_unveraendertPrüft, dass _pfad einen bereits absoluten Pfad nicht mit dem Basisverzeichnis verbindet. grün geprüft am 2026-09-21 TestDateipruefer
test_ist_gueltiger_gpkg_pfad_akzeptiert_vorhandenes_verzeichnisPrüft, dass ein .gpkg-Pfad mit vorhandenem Zielverzeichnis als gültig gilt. grün geprüft am 2026-09-21 TestDateipruefer
test_ist_gueltiger_gpkg_pfad_lehnt_falsche_endung_abPrüft, dass ein Pfad ohne .gpkg-Endung als ungültig gilt, auch bei vorhandenem Verzeichnis. grün geprüft am 2026-09-21 TestDateipruefer
test_ist_gueltiger_gpkg_pfad_lehnt_fehlendes_verzeichnis_abPrüft, dass ein .gpkg-Pfad in einem nicht vorhandenen Verzeichnis als ungültig gilt. grün geprüft am 2026-09-21 TestDateipruefer
test_ist_leer_erkennt_none_und_nicht_string_als_leerPrüft, dass _ist_leer sowohl None als auch einen Nicht-String-Wert als leer meldet. grün geprüft am 2026-09-21 TestDateipruefer
test_ist_leer_erkennt_reinen_whitespace_als_leerPrüft, dass _ist_leer eine Eingabe aus reinen Leerzeichen als leer meldet. grün geprüft am 2026-09-21 TestDateipruefer
test_ist_leer_meldet_pfad_mit_sichtbaren_zeichen_nicht_als_leerPrüft, dass _ist_leer einen Pfad mit sichtbaren Zeichen nicht als leer meldet. grün geprüft am 2026-09-21 TestDateipruefer
test_leere_eingabe_bevorzugt_leereingabe_erlaubt_vor_standarddateiPrüft, dass bei leerer Eingabe leereingabe_erlaubt Vorrang vor einer gesetzten Standarddatei hat. grün geprüft am 2026-09-21 TestDateipruefer
test_leere_eingabe_bevorzugt_standarddatei_vor_temporaer_erlaubtPrüft, dass bei leerer Eingabe eine gesetzte Standarddatei Vorrang vor temporaer_erlaubt hat. grün geprüft am 2026-09-21 Tests für sn_basis/modules/Datenabruf.py (Datenabruf-Kernpipeline, Issue #63).
DetermineSpatialFilterTests 7BuildProviderUrlTests 9FetchFeaturesTests 5DatenabrufOrchestrierungTests 3flowchart TD root(["test_datenabruf.py"]) class root rootnode root --> g1["DetermineSpatialFilterTests (7)"] @@ -314,7 +314,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;
Testfall prüft Status geprüft DetermineSpatialFilterTests
test_raumfilter_ohne_liefert_nonePrüft, dass Raumfilter 'ohne' unabhängig vom Layer immer None liefert. grün nie geprüft DetermineSpatialFilterTests
test_fehlender_layer_liefert_nonePrüft, dass ohne Verfahrensgebiet-Layer kein Raumfilter gebaut wird. grün nie geprüft DetermineSpatialFilterTests
test_unbekannter_raumfilter_liefert_nonePrüft, dass ein unbekannter Raumfilter-Wert None liefert, statt einen Fehler zu werfen. grün nie geprüft DetermineSpatialFilterTests
test_verfahrensgebiet_liefert_extent_und_crsPrüft, dass Raumfilter 'Verfahrensgebiet' Extent und CRS des Verfahrensgebiet-Layers liefert. grün nie geprüft DetermineSpatialFilterTests
test_verfahrensgebiet_ohne_extent_liefert_nonePrüft, dass ein Verfahrensgebiet-Layer ohne ermittelbaren Extent None liefert. grün nie geprüft DetermineSpatialFilterTests
test_pufferlayer_liefert_extent_des_pufferlayersPrüft, dass Raumfilter 'Pufferlayer' Extent und CRS des erzeugten Pufferlayers liefert. grün nie geprüft DetermineSpatialFilterTests
test_pufferlayer_ohne_puffer_liefert_nonePrüft, dass 'Pufferlayer' None liefert, wenn kein Pufferlayer erzeugt werden konnte. grün nie geprüft BuildProviderUrlTests
test_wms_liefert_link_unveraendertPrüft, dass bei Provider WMS der Link unverändert durchgereicht wird, auch mit Raumfilter. grün nie geprüft BuildProviderUrlTests
test_url_praefix_wird_entferntPrüft, dass ein vorangestelltes 'url=' aus dem Link entfernt wird. grün nie geprüft BuildProviderUrlTests
test_wfs_baut_standardparameter_und_bbox_mit_crsPrüft, dass WFS-Abrufe Standardparameter, umbenanntes TYPENAMES und BBOX mit CRS-URN erhalten. grün nie geprüft BuildProviderUrlTests
test_wfs_repariert_doppeltes_fragezeichenPrü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_bboxPrüft, dass WFS ohne Raumfilter (bbox_geom=None) keinen BBOX-Parameter setzt. grün nie geprüft BuildProviderUrlTests
test_rest_provider_haengt_query_endpunkt_anPrü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_sridPrü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_anPrü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_unveraendertPrüft, dass ein unbekannter Provider ohne Raumfilter keinen bbox-Parameter ergänzt. grün nie geprüft FetchFeaturesTests
test_wms_liefert_keine_features_ohne_fehlerPrüft, dass bei Provider WMS kein Featureabruf stattfindet und kein Fehler gemeldet wird. grün nie geprüft FetchFeaturesTests
test_abbruch_vor_abruf_liefert_fehlermeldungPrüft, dass ein bereits gesetzter Abbruch vor dem eigentlichen Abruf erkannt wird. grün nie geprüft FetchFeaturesTests
test_json_featurecollection_wird_geparstPrüft, dass eine JSON-FeatureCollection-Antwort in eine Feature-Liste umgewandelt wird. grün nie geprüft FetchFeaturesTests
test_netzwerkfehler_wird_als_fehlermeldung_gemeldetPrüft, dass ein fehlgeschlagener HTTP-Abruf eine Fehlermeldung statt einer Ausnahme liefert. grün nie geprüft FetchFeaturesTests
test_wfs_xml_liefert_anzahl_aus_numberofmatchedPrü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_gemeldetPrü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_ausserhalbPrü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_zeilenPrüft, dass ein Abbruch über das Progress-Objekt die Verarbeitung weiterer Zeilen stoppt. grün nie geprüft Tests für sn_basis/modules/Datenschreiber.py (Schreib-/Ladepipeline, Issue #63).
WriteLayerToGpkgTests 2ResolveStylePathTests 3SchreibeDatenTests 4LadeLayerTests 3SchreibeLogTests 2StoreStyleInGpkgTests 4flowchart TD + classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
Testfall prüft Status geprüft DetermineSpatialFilterTests
test_raumfilter_ohne_liefert_nonePrüft, dass Raumfilter 'ohne' unabhängig vom Layer immer None liefert. grün nie geprüft DetermineSpatialFilterTests
test_fehlender_layer_liefert_nonePrü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_nonePrüft, dass ein unbekannter Raumfilter-Wert None liefert, statt einen Fehler zu werfen. grün nie geprüft DetermineSpatialFilterTests
test_verfahrensgebiet_liefert_extent_und_crsPrüft, dass Raumfilter 'Verfahrensgebiet' Extent und CRS des Verfahrensgebiet-Layers liefert. grün nie geprüft DetermineSpatialFilterTests
test_verfahrensgebiet_ohne_extent_liefert_nonePrüft, dass ein Verfahrensgebiet-Layer ohne ermittelbaren Extent None liefert. grün nie geprüft DetermineSpatialFilterTests
test_pufferlayer_liefert_extent_des_pufferlayersPrüft, dass Raumfilter 'Pufferlayer' Extent und CRS des erzeugten Pufferlayers liefert. grün nie geprüft DetermineSpatialFilterTests
test_pufferlayer_ohne_puffer_liefert_nonePrüft, dass 'Pufferlayer' None liefert, wenn kein Pufferlayer erzeugt werden konnte. grün nie geprüft BuildProviderUrlTests
test_wms_liefert_link_unveraendertPrüft, dass bei Provider WMS der Link unverändert durchgereicht wird, auch mit Raumfilter. grün nie geprüft BuildProviderUrlTests
test_url_praefix_wird_entferntPrüft, dass ein vorangestelltes 'url=' aus dem Link entfernt wird. grün nie geprüft BuildProviderUrlTests
test_wfs_baut_standardparameter_und_bbox_mit_crsPrüft, dass WFS-Abrufe Standardparameter, umbenanntes TYPENAMES und BBOX mit CRS-URN erhalten. grün nie geprüft BuildProviderUrlTests
test_wfs_repariert_doppeltes_fragezeichenPrü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_bboxPrüft, dass WFS ohne Raumfilter (bbox_geom=None) keinen BBOX-Parameter setzt. grün nie geprüft BuildProviderUrlTests
test_rest_provider_haengt_query_endpunkt_anPrü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_sridPrü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_anPrü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_unveraendertPrüft, dass ein unbekannter Provider ohne Raumfilter keinen bbox-Parameter ergänzt. grün nie geprüft FetchFeaturesTests
test_wms_liefert_keine_features_ohne_fehlerPrüft, dass bei Provider WMS kein Featureabruf stattfindet und kein Fehler gemeldet wird. grün nie geprüft FetchFeaturesTests
test_abbruch_vor_abruf_liefert_fehlermeldungPrüft, dass ein bereits gesetzter Abbruch vor dem eigentlichen Abruf erkannt wird. grün nie geprüft FetchFeaturesTests
test_json_featurecollection_wird_geparstPrüft, dass eine JSON-FeatureCollection-Antwort in eine Feature-Liste umgewandelt wird. grün nie geprüft FetchFeaturesTests
test_netzwerkfehler_wird_als_fehlermeldung_gemeldetPrüft, dass ein fehlgeschlagener HTTP-Abruf eine Fehlermeldung statt einer Ausnahme liefert. grün nie geprüft FetchFeaturesTests
test_wfs_xml_liefert_anzahl_aus_numberofmatchedPrü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_gemeldetPrü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_ausserhalbPrü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_zeilenPrüft, dass ein Abbruch über das Progress-Objekt die Verarbeitung weiterer Zeilen stoppt. grün nie geprüft Tests für sn_basis/modules/Datenschreiber.py (Schreib-/Ladepipeline, Issue #63).
WriteLayerToGpkgTests 2ResolveStylePathTests 3SchreibeDatenTests 4LadeLayerTests 3SchreibeLogTests 2StoreStyleInGpkgTests 4flowchart TD root(["test_datenschreiber.py"]) class root rootnode root --> g1["WriteLayerToGpkgTests (2)"] diff --git a/docs/tests/testkatalog.md b/docs/tests/testkatalog.md index d2269b8..7693dcb 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 `68b590c8feef`) +Stand des Prüf-Audits: `docs/status/testpruefungen.json` (SHA-256 `c85c88c5c268`) 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: 55 von 581 (9 %) aktuell, 0 veraltet seit Codeänderung, 526 nie geprüft. +Fachlich geprüft: 74 von 581 (13 %) aktuell, 0 veraltet seit Codeänderung, 507 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 %) | 55 von 329 (17 %) | 72 von 229 (31 %) | +| `sn_basis` | 32 | 329 | 329 | 0 | 0 | 329 von 329 (100 %) | 74 von 329 (22 %) | 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 %)** | **55 von 581 (9 %)** | **145 von 413 (35 %)** | +| **Summe** | **49** | **581** | **538** | **35** | **8** | **436 von 581 (75 %)** | **74 von 581 (13 %)** | **145 von 413 (35 %)** | ### Legende @@ -48,11 +48,11 @@ Testgruppen: | Testfall | prüft | Status | geprüft | | --- | --- | --- | --- | -| `CloseEventTests.test_ruft_cleanup_aller_tabs_auf` | Prüft, dass closeEvent cleanup() auf allen Tabs des Dock-Widgets aufruft. | grün | nie geprüft | -| `CloseEventTests.test_ignoriert_tabs_ohne_cleanup` | Prüft, dass ein Tab ohne cleanup()-Methode nicht zu einem Fehler führt. | grün | nie geprüft | -| `CloseEventTests.test_fehler_in_cleanup_wird_abgefangen_und_andere_tabs_laufen_weiter` | Prüft, dass ein Fehler in cleanup() eines Tabs nicht die übrigen Tabs verhindert. | grün | nie geprüft | -| `CloseEventTests.test_setzt_toolbar_action_zurueck` | Prüft, dass closeEvent die verknüpfte Toolbar-Action auf 'nicht gedrückt' zurücksetzt. | grün | nie geprüft | -| `CloseEventTests.test_ohne_action_wird_nichts_zurueckgesetzt` | Prüft, dass closeEvent ohne verknüpfte Toolbar-Action keine Ausnahme wirft. | grün | nie geprüft | +| `CloseEventTests.test_ruft_cleanup_aller_tabs_auf` | Prüft, dass closeEvent cleanup() auf allen Tabs des Dock-Widgets aufruft. | grün | geprüft am 2026-09-21 | +| `CloseEventTests.test_ignoriert_tabs_ohne_cleanup` | Prüft, dass ein Tab ohne cleanup()-Methode nicht zu einem Fehler führt. | grün | geprüft am 2026-09-21 | +| `CloseEventTests.test_fehler_in_cleanup_wird_abgefangen_und_andere_tabs_laufen_weiter` | Prüft, dass ein Fehler in cleanup() eines Tabs nicht die übrigen Tabs verhindert. | grün | geprüft am 2026-09-21 | +| `CloseEventTests.test_setzt_toolbar_action_zurueck` | Prüft, dass closeEvent die verknüpfte Toolbar-Action auf 'nicht gedrückt' zurücksetzt. | grün | geprüft am 2026-09-21 | +| `CloseEventTests.test_ohne_action_wird_nichts_zurueckgesetzt` | Prüft, dass closeEvent ohne verknüpfte Toolbar-Action keine Ausnahme wirft. | grün | geprüft am 2026-09-21 | ### `Plugin_SN_Basis/tests/test_bootstrap.py` @@ -76,8 +76,8 @@ Testgruppen: | `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 | -| `TestDataGrabber.test_aggregate_results_mit_zeilen_liefert_erfolgsergebnis` | Prüft, dass _aggregate_results bei vorhandenen Zeilen ein Erfolgsergebnis mit Zeilenzahl liefert. | grün | nie geprüft | -| `TestDataGrabber.test_aggregate_results_ohne_zeilen_liefert_keine_validen_eintraege` | Prüft, dass _aggregate_results ohne Zeilen ok=False mit Aktion 'keine_validen_eintraege' liefert. | grün | nie geprüft | +| `TestDataGrabber.test_aggregate_results_mit_zeilen_liefert_erfolgsergebnis` | Prüft, dass _aggregate_results bei vorhandenen Zeilen ein Erfolgsergebnis mit Zeilenzahl liefert. | grün | geprüft am 2026-09-21 | +| `TestDataGrabber.test_aggregate_results_ohne_zeilen_liefert_keine_validen_eintraege` | Prüft, dass _aggregate_results ohne Zeilen ok=False mit Aktion 'keine_validen_eintraege' liefert. | grün | geprüft am 2026-09-21 | ### `Plugin_SN_Basis/tests/test_dateipruefer.py` @@ -91,21 +91,21 @@ Testgruppen: | --- | --- | --- | --- | | `TestDateipruefer.test_leereingabe_erlaubt` | Prüft, dass eine leere Pfadangabe bei leereingabe_erlaubt=True als 'leereingabe_erlaubt' ohne Kontext gemeldet wird. | grün | geprüft am 2026-09-17 | | `TestDateipruefer.test_leereingabe_nicht_erlaubt` | Prüft, dass eine leere Pfadangabe ohne leereingabe_erlaubt als 'leereingabe_nicht_erlaubt' abgelehnt wird. | grün | geprüft am 2026-09-17 | -| `TestDateipruefer.test_standarddatei_vorschlagen` | Prüft, dass bei leerer Pfadangabe mit gesetzter Standarddatei 'standarddatei_vorschlagen' mit dem Standardpfad als Kontext geliefert wird. | grün | nie geprüft | +| `TestDateipruefer.test_standarddatei_vorschlagen` | Prüft, dass bei leerer Pfadangabe mit gesetzter Standarddatei 'standarddatei_vorschlagen' mit dem Standardpfad als Kontext geliefert wird. | grün | geprüft am 2026-09-21 | | `TestDateipruefer.test_temporaer_erlaubt` | Prüft, dass eine leere Pfadangabe bei temporaer_erlaubt=True als 'temporaer_erlaubt' ohne Kontext gemeldet wird. | grün | geprüft am 2026-09-17 | | `TestDateipruefer.test_datei_nicht_gefunden` | Prüft, dass ein nicht existierender Dateipfad als 'datei_nicht_gefunden' mit dem Pfad als Kontext abgelehnt wird. | grün | geprüft am 2026-09-17 | | `TestDateipruefer.test_datei_ok` | Prüft, dass ein existierender Dateipfad als 'ok' mit dem Pfad als Kontext bestätigt wird. | grün | geprüft am 2026-09-17 | -| `TestDateipruefer.test_erkenne_dateityp_unterscheidet_excel_datenbank_und_unbekannt` | Prüft, dass erkenne_dateityp .xlsx als 'excel', .gpkg/.sqlite als 'datenbank' und Rest als 'unbekannt' erkennt. | grün | nie geprüft | -| `TestDateipruefer.test_pfad_verbindet_relativen_pfad_mit_basispfad` | Prüft, dass _pfad einen relativen Pfad mit dem Basisverzeichnis verbindet. | grün | nie geprüft | -| `TestDateipruefer.test_pfad_laesst_absoluten_pfad_unveraendert` | Prüft, dass _pfad einen bereits absoluten Pfad nicht mit dem Basisverzeichnis verbindet. | grün | nie geprüft | -| `TestDateipruefer.test_ist_gueltiger_gpkg_pfad_akzeptiert_vorhandenes_verzeichnis` | Prüft, dass ein .gpkg-Pfad mit vorhandenem Zielverzeichnis als gültig gilt. | grün | nie geprüft | -| `TestDateipruefer.test_ist_gueltiger_gpkg_pfad_lehnt_falsche_endung_ab` | Prüft, dass ein Pfad ohne .gpkg-Endung als ungültig gilt, auch bei vorhandenem Verzeichnis. | grün | nie geprüft | -| `TestDateipruefer.test_ist_gueltiger_gpkg_pfad_lehnt_fehlendes_verzeichnis_ab` | Prüft, dass ein .gpkg-Pfad in einem nicht vorhandenen Verzeichnis als ungültig gilt. | grün | nie geprüft | -| `TestDateipruefer.test_ist_leer_erkennt_none_und_nicht_string_als_leer` | Prüft, dass _ist_leer sowohl None als auch einen Nicht-String-Wert als leer meldet. | grün | nie geprüft | -| `TestDateipruefer.test_ist_leer_erkennt_reinen_whitespace_als_leer` | Prüft, dass _ist_leer eine Eingabe aus reinen Leerzeichen als leer meldet. | grün | nie geprüft | -| `TestDateipruefer.test_ist_leer_meldet_pfad_mit_sichtbaren_zeichen_nicht_als_leer` | Prüft, dass _ist_leer einen Pfad mit sichtbaren Zeichen nicht als leer meldet. | grün | nie geprüft | -| `TestDateipruefer.test_leere_eingabe_bevorzugt_leereingabe_erlaubt_vor_standarddatei` | Prüft, dass bei leerer Eingabe leereingabe_erlaubt Vorrang vor einer gesetzten Standarddatei hat. | grün | nie geprüft | -| `TestDateipruefer.test_leere_eingabe_bevorzugt_standarddatei_vor_temporaer_erlaubt` | Prüft, dass bei leerer Eingabe eine gesetzte Standarddatei Vorrang vor temporaer_erlaubt hat. | grün | nie geprüft | +| `TestDateipruefer.test_erkenne_dateityp_unterscheidet_excel_datenbank_und_unbekannt` | Prüft, dass erkenne_dateityp .xlsx als 'excel', .gpkg/.sqlite als 'datenbank' und Rest als 'unbekannt' erkennt. | grün | geprüft am 2026-09-21 | +| `TestDateipruefer.test_pfad_verbindet_relativen_pfad_mit_basispfad` | Prüft, dass _pfad einen relativen Pfad mit dem Basisverzeichnis verbindet. | grün | geprüft am 2026-09-21 | +| `TestDateipruefer.test_pfad_laesst_absoluten_pfad_unveraendert` | Prüft, dass _pfad einen bereits absoluten Pfad nicht mit dem Basisverzeichnis verbindet. | grün | geprüft am 2026-09-21 | +| `TestDateipruefer.test_ist_gueltiger_gpkg_pfad_akzeptiert_vorhandenes_verzeichnis` | Prüft, dass ein .gpkg-Pfad mit vorhandenem Zielverzeichnis als gültig gilt. | grün | geprüft am 2026-09-21 | +| `TestDateipruefer.test_ist_gueltiger_gpkg_pfad_lehnt_falsche_endung_ab` | Prüft, dass ein Pfad ohne .gpkg-Endung als ungültig gilt, auch bei vorhandenem Verzeichnis. | grün | geprüft am 2026-09-21 | +| `TestDateipruefer.test_ist_gueltiger_gpkg_pfad_lehnt_fehlendes_verzeichnis_ab` | Prüft, dass ein .gpkg-Pfad in einem nicht vorhandenen Verzeichnis als ungültig gilt. | grün | geprüft am 2026-09-21 | +| `TestDateipruefer.test_ist_leer_erkennt_none_und_nicht_string_als_leer` | Prüft, dass _ist_leer sowohl None als auch einen Nicht-String-Wert als leer meldet. | grün | geprüft am 2026-09-21 | +| `TestDateipruefer.test_ist_leer_erkennt_reinen_whitespace_als_leer` | Prüft, dass _ist_leer eine Eingabe aus reinen Leerzeichen als leer meldet. | grün | geprüft am 2026-09-21 | +| `TestDateipruefer.test_ist_leer_meldet_pfad_mit_sichtbaren_zeichen_nicht_als_leer` | Prüft, dass _ist_leer einen Pfad mit sichtbaren Zeichen nicht als leer meldet. | grün | geprüft am 2026-09-21 | +| `TestDateipruefer.test_leere_eingabe_bevorzugt_leereingabe_erlaubt_vor_standarddatei` | Prüft, dass bei leerer Eingabe leereingabe_erlaubt Vorrang vor einer gesetzten Standarddatei hat. | grün | geprüft am 2026-09-21 | +| `TestDateipruefer.test_leere_eingabe_bevorzugt_standarddatei_vor_temporaer_erlaubt` | Prüft, dass bei leerer Eingabe eine gesetzte Standarddatei Vorrang vor temporaer_erlaubt hat. | grün | geprüft am 2026-09-21 | ### `Plugin_SN_Basis/tests/test_datenabruf.py` @@ -121,7 +121,7 @@ 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. | 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 |