Files
Projektwissen/docs/tests/testkatalog.md
T
DanielandClaude Sonnet 5 3f985ce209 Testkatalog neu erzeugt, Wissensbasis für Basis #65 nachgezogen
sn_basis: 244 -> 249 Testfälle. fallstricke.md: _MockQDockWidget ohne
closeEvent(), zwei bestätigte Testkatalog-Fehlalarme (toter Code in
Pruefmanager._ask_use_or_replace_pufferlayer, Issue #60) sowie das Muster
Klasse.__new__(Klasse) für UI-Klassen, die im Mock nicht konstruierbar
sind. modulkarte.md an aktuelle Testdateizahl angepasst.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 11:20:37 +02:00

125 KiB
Raw Blame History

Testkatalog der sn_*-Plugins

Automatisch erzeugt von scripts/testkatalog.py – nicht von Hand bearbeiten. Neu erzeugen: python scripts/testkatalog.py. Prüfen (CI, vor dem Commit): python scripts/testkatalog.py --pruefen.

Dieser Katalog zeigt ohne Blick in den Quelltext, was die Testsuite prüft. Er ist die Grundlage für die fachliche Frage, ob die Abdeckung sinnvoll ist. Die Angaben stammen aus den Testdateien 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)

Gesamt: 3 Pakete, 46 Testdateien, 501 Testfälle – 458 grün, 35 rot (Baseline), 8 übersprungen. Mit Beschreibung (Docstring): 356 von 501 (71 %). Fachlich geprüft: 55 von 501 (11 %) aktuell, 0 veraltet seit Codeänderung, 446 nie geprüft. Strukturelle Lücken (heuristisch, Namensabgleich): 188 von 413 (46 %) 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 29 249 249 0 0 249 von 249 (100 %) 55 von 249 (22 %) 115 von 229 (50 %)
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 46 501 458 35 8 356 von 501 (71 %) 55 von 501 (11 %) 188 von 413 (46 %)

Legende

  • prüft – erste Zeile des Docstrings des Testfalls. Fehlt sie, steht dort — (Docstring fehlt).
  • grün – der Testfall lief im Baseline-Lauf durch.
  • rot (Baseline) – der Testfall schlägt bereits fehl und ist in docs/status/testbaseline.json vermerkt; er darf nicht ignoriert, aber auch nicht als neuer Fehler gewertet werden.
  • übersprungen – per @unittest.skip/skipIf/skipUnless abgeschaltet; der Grund steht dabei.
  • Ein Testfall heißt Testgruppe.test_name; die Testgruppe fasst zusammengehörige Testfälle einer Datei zusammen.
  • geprüft – Prüf-Audit (scripts/test_audit.py): nie geprüft kein Eintrag in docs/status/testpruefungen.json; geprüft am … ein Mensch hat den Testfall bestätigt und der Testcode hat sich seither nicht geändert; veraltet seit Änderung … der Testcode wurde nach der letzten Prüfung geändert.
  • ohne Testbezug – Funktionen/Methoden im Quellcode, deren Name in keiner Testdatei des Pakets vorkommt (weder als Aufruf noch als mock.patch("…")-Ziel). Ein Namensabgleich, kein Ausführungsnachweis – siehe Abschnitt „Ungetestete Funktionen“ für die Grenzen dieser Heuristik. Das ist bewusst keine Zeilen-Coverage in Prozent (siehe ADR 0009, „Verworfene Alternativen“), sondern eine Lückenliste wie bei fehlenden Beschreibungen.

Paket sn_basis

Plattform-Plugin, Ordner Plugin_SN_Basis – 29 Testdateien mit 249 Testfällen (249 grün, 0 rot, 0 übersprungen).

Plugin_SN_Basis/tests/test_base_dockwidget.py

Worum es in der Datei geht: Tests für sn_basis/ui/base_dockwidget.py::closeEvent (Issue #65).

Testgruppen:

  • CloseEventTests (5 Testfälle): — (Docstring fehlt)
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

Plugin_SN_Basis/tests/test_bootstrap.py

Worum es in der Datei geht: — (Docstring fehlt)

Keine Testfälle: Die Datei enthält keine unittest.TestCase-Klasse – sie ist eine reine Hilfsdatei, die beim Testlauf nur importiert wird.

Plugin_SN_Basis/tests/test_datagrabber.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestDataGrabber (6 Testfälle): — (Docstring fehlt)
Testfall prüft Status 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

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestDateipruefer (12 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
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_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

Plugin_SN_Basis/tests/test_datenabruf.py

Worum es in der Datei geht: Tests für sn_basis/modules/Datenabruf.py (Datenabruf-Kernpipeline, Issue #63).

Testgruppen:

  • DetermineSpatialFilterTests (7 Testfälle): — (Docstring fehlt)
  • BuildProviderUrlTests (9 Testfälle): — (Docstring fehlt)
  • FetchFeaturesTests (5 Testfälle): — (Docstring fehlt)
  • DatenabrufOrchestrierungTests (3 Testfälle): — (Docstring fehlt)
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_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

Plugin_SN_Basis/tests/test_datenschreiber.py

Worum es in der Datei geht: Tests für sn_basis/modules/Datenschreiber.py (Schreib-/Ladepipeline, Issue #63).

Testgruppen:

  • WriteLayerToGpkgTests (2 Testfälle): — (Docstring fehlt)
  • ResolveStylePathTests (3 Testfälle): — (Docstring fehlt)
  • SchreibeDatenTests (4 Testfälle): — (Docstring fehlt)
  • LadeLayerTests (3 Testfälle): — (Docstring fehlt)
  • SchreibeLogTests (2 Testfälle): — (Docstring fehlt)
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

Plugin_SN_Basis/tests/test_dockmanager.py

Worum es in der Datei geht: Tests für sn_basis/ui/dockmanager.py (nur ein Dock gleichzeitig sichtbar, Issue #65).

Testgruppen:

  • DockManagerShowTests (6 Testfälle): — (Docstring fehlt)
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

Plugin_SN_Basis/tests/test_excel_importer.py

Worum es in der Datei geht: Tests für sn_basis/modules/excel_importer.py (Excel-Import für Linklisten, Issue #63).

Testgruppen:

  • ImportXlsxTests (5 Testfälle): — (Docstring fehlt)
  • ExcelImporterKonstruktorTests (2 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
ImportXlsxTests.test_erfolgreicher_import_liefert_zeilen_als_dicts Prüft, dass eine gültige Excel-Datei als Liste von Dicts mit den Header-Spalten geliefert wird. grün nie geprüft
ImportXlsxTests.test_fehlende_datei_liefert_leere_liste Prüft, dass eine nicht vorhandene Datei eine leere Liste liefert, statt eine Ausnahme zu werfen. grün nie geprüft
ImportXlsxTests.test_arbeitsblatt_ohne_header_liefert_leere_liste_und_meldet_kein_header Prüft, dass ein leeres Arbeitsblatt ohne Header-Zeile 'kein_header' meldet und eine leere Liste liefert. grün nie geprüft
ImportXlsxTests.test_header_zeile_nur_leere_werte_liefert_kein_header Prüft, dass eine Header-Zeile aus ausschließlich leeren Zellen ebenfalls als 'kein_header' gilt. grün nie geprüft
ImportXlsxTests.test_nicht_lesbare_datei_liefert_leere_liste_und_meldet_read_error Prüft, dass eine Datei mit ungültigem Excel-Inhalt 'read_error' meldet und eine leere Liste liefert. grün nie geprüft
ExcelImporterKonstruktorTests.test_ohne_dateipfad_wirft_valueerror Prüft, dass ExcelImporter ohne Dateipfad einen ValueError wirft. grün nie geprüft
ExcelImporterKonstruktorTests.test_ohne_pruefmanager_wirft_valueerror Prüft, dass ExcelImporter ohne Pruefmanager einen ValueError wirft. grün nie geprüft

Plugin_SN_Basis/tests/test_laenderkennung.py

Worum es in der Datei geht: Unit-Tests für sn_basis.functions.laenderkennung.

Testgruppen:

  • TestGetLaenderkennung (5 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestGetLaenderkennung.test_bekannter_praefix_gibt_kennung_zurueck Prüft, dass der Präfix 'sn' die ALKIS-Länderkennung '14' für Sachsen liefert. grün geprüft am 2026-09-17
TestGetLaenderkennung.test_praefix_gross_klein_unabhaengig Prüft, dass die Präfixsuche groß-/kleinschreibungsunabhängig ist. grün geprüft am 2026-09-17
TestGetLaenderkennung.test_unbekannter_praefix_wirft_keyerror Prüft, dass ein unbekannter Präfix einen KeyError auslöst. grün geprüft am 2026-09-17
TestGetLaenderkennung.test_ohne_argument_wird_aus_aufrufendem_modul_abgeleitet Prüft, dass ohne Argument der Präfix aus dem Modulnamen des Aufrufers abgeleitet wird. grün geprüft am 2026-09-17
TestGetLaenderkennung.test_mapping_enthaelt_sachsen Prüft, dass die Mapping-Tabelle LAENDERKENNUNGEN einen Eintrag für Sachsen ('sn' -> '14') enthält. grün geprüft am 2026-09-17

Plugin_SN_Basis/tests/test_landkreise.py

Worum es in der Datei geht: Tests für sn_basis/functions/landkreise.py::_lade_landkreise (Issue #65).

Testgruppen:

  • LadeLandkreiseTests (2 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
LadeLandkreiseTests.test_laedt_die_echte_landkreisliste_nicht_leer Prüft, dass _lade_landkreise die echte landkreise.json als nicht-leere Liste von (Kennzahl, Name)-Tupeln liefert. grün nie geprüft
LadeLandkreiseTests.test_fehlende_datei_liefert_leere_liste Prüft, dass eine nicht lesbare Datenquelle eine leere Liste liefert, statt eine Ausnahme zu werfen. grün nie geprüft

Plugin_SN_Basis/tests/test_layerloader.py

Worum es in der Datei geht: Tests für sn_basis/modules/LayerLoader.py (Layer erzeugen/filtern/laden, Issue #63).

Testgruppen:

  • CreateLayerTests (7 Testfälle): — (Docstring fehlt)
  • TransformGeometryTests (3 Testfälle): — (Docstring fehlt)
  • TransformExtentTests (2 Testfälle): — (Docstring fehlt)
  • FilterByExtentTests (6 Testfälle): — (Docstring fehlt)
  • FilterByLayerTests (4 Testfälle): — (Docstring fehlt)
  • AddToProjectTests (3 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
CreateLayerTests.test_wfs_baut_uri_ohne_getfeature_parameter Prüft, dass für WFS die GetFeature-spezifischen Parameter aus der URI entfernt werden. grün nie geprüft
CreateLayerTests.test_wfs_mit_url_praefix_wird_nicht_doppelt_gesetzt Prüft, dass ein bereits vorhandenes 'url='-Präfix im WFS-Link nicht verdoppelt wird. grün nie geprüft
CreateLayerTests.test_wms_baut_url_praefix_und_nutzt_rasterlayer Prüft, dass WMS-Layer über QgsRasterLayer mit 'url='-Präfix erzeugt werden. grün nie geprüft
CreateLayerTests.test_rest_featureserver_ergaenzt_layer_index Prüft, dass ein REST-Link auf '.../FeatureServer' automatisch um '/0' ergänzt wird. grün nie geprüft
CreateLayerTests.test_ogr_provider_nutzt_link_direkt Prüft, dass ein OGR-Provider den Link unverändert an QgsVectorLayer übergibt. grün nie geprüft
CreateLayerTests.test_ungueltiger_layer_meldet_layer_nicht_verfuegbar Prüft, dass ein ungültig erzeugter Layer als 'layer_nicht_verfuegbar' gemeldet wird und None liefert. grün nie geprüft
CreateLayerTests.test_ausnahme_beim_erstellen_wird_abgefangen Prüft, dass eine Ausnahme beim Layer-Erstellen abgefangen und als Fehlerergebnis gemeldet wird. grün nie geprüft
TransformGeometryTests.test_fehlender_layer_liefert_geometrie_unveraendert Prüft, dass ohne Quell- oder Ziel-Layer die Geometrie unverändert zurückgegeben wird. grün nie geprüft
TransformGeometryTests.test_gleiche_crs_liefert_geometrie_unveraendert Prüft, dass bei identischem CRS von Quelle und Ziel keine Transformation stattfindet. grün nie geprüft
TransformGeometryTests.test_unterschiedliche_crs_klont_und_transformiert_geometrie Prüft, dass bei unterschiedlichem CRS eine geklonte, transformierte Geometrie geliefert wird. grün nie geprüft
TransformExtentTests.test_gleiche_crs_liefert_extent_unveraendert Prüft, dass bei identischem CRS von Quelle und Ziel der Extent unverändert bleibt. grün nie geprüft
TransformExtentTests.test_unterschiedliche_crs_nutzt_coordinate_transform Prüft, dass bei unterschiedlichem CRS der Extent über QgsCoordinateTransform umgerechnet wird. grün nie geprüft
FilterByExtentTests.test_ungueltiger_layer_wird_unveraendert_zurueckgegeben Prüft, dass ein ungültiger Layer von filter_by_extent unverändert zurückgegeben wird. grün nie geprüft
FilterByExtentTests.test_ohne_extent_wird_layer_unveraendert_zurueckgegeben Prüft, dass ohne Extent (None) der Layer unverändert zurückgegeben wird. grün nie geprüft
FilterByExtentTests.test_falscher_layertyp_wird_unveraendert_zurueckgegeben Prüft, dass ein Nicht-Vektor-Layer (z. B. Rasterlayer) unverändert zurückgegeben wird. grün nie geprüft
FilterByExtentTests.test_keine_treffer_liefert_none Prüft, dass ein Raumfilter ohne Treffer None statt eines leeren Layers liefert. grün nie geprüft
FilterByExtentTests.test_abbruch_liefert_none_und_meldet_needs_user_action Prüft, dass ein Abbruch während des Raumfilters None liefert und gemeldet wird. grün nie geprüft
FilterByExtentTests.test_erfolgreicher_filter_liefert_neuen_layer_mit_features Prüft, dass ein erfolgreicher BBOX-Filter einen neuen Speicherlayer mit den gefundenen Features liefert. grün nie geprüft
FilterByLayerTests.test_ungueltiger_layer_oder_filterlayer_wird_unveraendert_zurueckgegeben Prüft, dass ein ungültiger Haupt- oder Filter-Layer unverändert zurückgegeben wird. grün nie geprüft
FilterByLayerTests.test_filterlayer_ohne_features_liefert_none Prüft, dass ein Filter-Layer ohne Features (leere Vereinigungsgeometrie) None liefert. grün nie geprüft
FilterByLayerTests.test_erfolgreicher_geometriefilter_liefert_neuen_layer Prüft, dass ein erfolgreicher Geometriefilter einen neuen Speicherlayer mit den passenden Features liefert. grün nie geprüft
FilterByLayerTests.test_keine_ueberschneidung_liefert_none Prüft, dass ohne überschneidende Features None statt eines leeren Layers geliefert wird. grün nie geprüft
AddToProjectTests.test_gueltiger_layer_wird_dem_projekt_hinzugefuegt Prüft, dass ein gültiger Layer über QgsProject.instance().addMapLayer hinzugefügt wird. grün nie geprüft
AddToProjectTests.test_ungueltiger_layer_wird_nicht_hinzugefuegt Prüft, dass ein ungültiger Layer nicht ans Projekt übergeben wird. grün nie geprüft
AddToProjectTests.test_none_layer_wird_nicht_hinzugefuegt Prüft, dass ein fehlender Layer (None) nicht ans Projekt übergeben wird. grün nie geprüft

Plugin_SN_Basis/tests/test_layerpruefer.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestLayerpruefer (10 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestLayerpruefer.test_layer_exists Prüft, dass ein nicht vorhandener Layer als 'layer_nicht_gefunden' abgelehnt wird. grün geprüft am 2026-09-17
TestLayerpruefer.test_layer_unsichtbar Prüft, dass ein unsichtbarer Layer bei geforderter Sichtbarkeit als 'layer_unsichtbar' abgelehnt wird. grün geprüft am 2026-09-17
TestLayerpruefer.test_falscher_layertyp Prüft, dass ein Layer mit abweichendem Layertyp (Raster statt Vektor) als 'falscher_layertyp' abgelehnt wird. grün geprüft am 2026-09-17
TestLayerpruefer.test_falscher_geotyp Prüft, dass ein Layer mit abweichendem Geometrietyp (Punkt statt Polygon) als 'falscher_geotyp' abgelehnt wird. grün geprüft am 2026-09-17
TestLayerpruefer.test_layer_leer Prüft, dass ein Layer ohne Features als 'layer_leer' abgelehnt wird. grün geprüft am 2026-09-17
TestLayerpruefer.test_falsches_crs Prüft, dass ein Layer mit abweichendem Koordinatenbezugssystem als 'falsches_crs' abgelehnt wird. grün geprüft am 2026-09-17
TestLayerpruefer.test_felder_fehlen Prüft, dass ein Layer mit fehlenden Pflichtfeldern als 'felder_fehlen' abgelehnt wird. grün geprüft am 2026-09-17
TestLayerpruefer.test_datenquelle_unerwartet Prüft, dass eine Datenquelle außerhalb der erlaubten Liste als 'datenquelle_unerwartet' abgelehnt wird. grün geprüft am 2026-09-17
TestLayerpruefer.test_layer_nicht_editierbar Prüft, dass ein nicht editierbarer Layer bei geforderter Editierbarkeit als 'layer_nicht_editierbar' abgelehnt wird. grün geprüft am 2026-09-17
TestLayerpruefer.test_layer_ok Prüft, dass ein Layer, der alle Anforderungen erfüllt, als 'ok' bestätigt wird. grün geprüft am 2026-09-17

Plugin_SN_Basis/tests/test_linkpruefer.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestLinkpruefer (6 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestLinkpruefer.test_leere_eingabe Prüft, dass eine leere Eingabe ohne Netzwerk-/Dateizugriff als 'leer' abgelehnt wird. grün geprüft am 2026-09-17
TestLinkpruefer.test_remote_link_ok Prüft, dass eine erreichbare Remote-URL (HTTP HEAD ohne Fehler) als 'ok' bestätigt wird. grün geprüft am 2026-09-17
TestLinkpruefer.test_remote_link_error Prüft, dass eine Remote-URL mit Fehlerantwort als 'url_nicht_erreichbar' abgelehnt wird. grün geprüft am 2026-09-17
TestLinkpruefer.test_remote_link_network_error Prüft, dass eine ausbleibende Netzwerkantwort (None) als 'netzwerkfehler' gemeldet wird. grün geprüft am 2026-09-17
TestLinkpruefer.test_local_link_not_found Prüft, dass ein nicht existierender lokaler Pfad als 'pfad_nicht_gefunden' abgelehnt wird. grün geprüft am 2026-09-17
TestLinkpruefer.test_local_link_ok Prüft, dass ein existierender lokaler Pfad als 'ok' bestätigt wird. grün geprüft am 2026-09-17

Plugin_SN_Basis/tests/test_ly_existence_wrapper.py

Worum es in der Datei geht: Tests für sn_basis/functions/ly_existence_wrapper.py::layer_is_valid/layer_is_usable (Issue #65).

Testgruppen:

  • LayerIsValidTests (5 Testfälle): — (Docstring fehlt)
  • LayerIsUsableTests (3 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
LayerIsValidTests.test_none_ist_nicht_gueltig Prüft, dass layer_is_valid für None False liefert. grün nie geprüft
LayerIsValidTests.test_objekt_ohne_isvalid_ist_nicht_gueltig Prüft, dass ein Objekt ohne isValid()-Methode als ungültig gilt. grün nie geprüft
LayerIsValidTests.test_gueltiger_layer_liefert_true Prüft, dass ein Layer mit isValid()==True als gültig erkannt wird. grün nie geprüft
LayerIsValidTests.test_ungueltiger_layer_liefert_false Prüft, dass ein Layer mit isValid()==False als ungültig erkannt wird. grün nie geprüft
LayerIsValidTests.test_ausnahme_bei_isvalid_liefert_false Prüft, dass eine Ausnahme in isValid() abgefangen wird und False liefert. grün nie geprüft
LayerIsUsableTests.test_none_ist_nicht_nutzbar Prüft, dass layer_is_usable für None False liefert. grün nie geprüft
LayerIsUsableTests.test_gueltiger_layer_ist_nutzbar Prüft, dass ein vorhandener, gültiger Layer als nutzbar gilt. grün nie geprüft
LayerIsUsableTests.test_ungueltiger_layer_ist_nicht_nutzbar Prüft, dass ein vorhandener, aber ungültiger Layer als nicht nutzbar gilt. grün nie geprüft

Plugin_SN_Basis/tests/test_ly_style_wrapper.py

Worum es in der Datei geht: Tests für sn_basis/functions/ly_style_wrapper.py::apply_style_from_path (Issue #65).

Testgruppen:

  • ApplyStyleFromPathTests (4 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
ApplyStyleFromPathTests.test_fehlender_layer_liefert_false Prüft, dass ein fehlender Layer (None) False liefert, ohne einen Stil zu laden. grün nie geprüft
ApplyStyleFromPathTests.test_erfolgreiches_laden_liefert_true_und_triggert_repaint Prüft, dass ein erfolgreich geladener Stil True liefert und den Layer neu zeichnet. grün nie geprüft
ApplyStyleFromPathTests.test_fehlgeschlagenes_laden_liefert_false_ohne_repaint Prüft, dass ein fehlgeschlagenes Laden False liefert, ohne den Layer neu zu zeichnen. grün nie geprüft
ApplyStyleFromPathTests.test_ausnahme_beim_laden_wird_abgefangen Prüft, dass eine Ausnahme beim Laden des Stils abgefangen wird und False liefert. grün nie geprüft

Plugin_SN_Basis/tests/test_message_wrapper.py

Worum es in der Datei geht: Tests für sn_basis/functions/message_wrapper.py (Issue #65).

Testgruppen:

  • GetMessageBarTests (2 Testfälle): — (Docstring fehlt)
  • PushMessageTests (2 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
GetMessageBarTests.test_liefert_objekt_mit_pushmessage_methode Prüft, dass _get_message_bar ein Objekt mit aufrufbarer pushMessage()-Methode liefert. grün nie geprüft
GetMessageBarTests.test_faellt_bei_fehlerhaftem_iface_auf_mock_bar_zurueck Prüft, dass ein Fehler beim Zugriff auf iface.messageBar() auf eine funktionierende Mock-MessageBar zurückfällt. grün nie geprüft
PushMessageTests.test_liefert_dict_mit_titel_text_level_und_dauer Prüft, dass push_message im Mock-Modus ein Dict mit den übergebenen Werten liefert. grün nie geprüft
PushMessageTests.test_fehler_in_der_message_bar_wird_abgefangen Prüft, dass eine fehlschlagende MessageBar push_message nicht zum Absturz bringt, sondern None liefert. grün nie geprüft

Plugin_SN_Basis/tests/test_print_layout.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestPrintLayout (5 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestPrintLayout.test_create_legend_item_links_map_and_enables_map_filtering Prüft, dass eine erzeugte Legende mit der übergebenen Karte verknüpft ist und automatisch nach deren Sichtbarkeit gefiltert wird. grün nie geprüft
TestPrintLayout.test_create_legend_item_does_not_copy_project_layers_into_legend_model Prüft, dass eine neu erzeugte Legende keine Projekt-Layer in ihr Legendenmodell übernimmt (leere Root-Gruppe). grün nie geprüft
TestPrintLayout.test_configure_legend_size_uses_content_adaptive_size Prüft, dass die Legendengröße inhaltsadaptiv bestimmt wird (kein manuelles Resize) und die ermittelte Höhe zurückgegeben wird. grün nie geprüft
TestPrintLayout.test_configure_hauptkarte_grids_uses_wrapper_constants Prüft, dass das Gitternetz der Hauptkarte mit den erwarteten Stil-, Rahmen- und Beschriftungskonstanten (nur rechts/unten beschriftet, Schriftgröße und Hintergrund) konfiguriert wird. grün nie geprüft
TestPrintLayout.test_create_single_page_layout_keeps_legend_linked_to_hauptkarte_and_theme Prüft, dass ein einseitiges Layout die Hauptkarte auf das übergebene Kartenthema festlegt und die Legende mit dieser Karte verknüpft bleibt. grün nie geprüft

Plugin_SN_Basis/tests/test_print_logic.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestPrintLogic (17 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestPrintLogic.test_get_baufreigabe_page_dimensions_prefers_a4_for_small_extent Prüft, dass für einen kleinen Kartenausschnitt (Baufreigabe) das Format DIN A4 ohne Fallback gewählt wird. grün nie geprüft
TestPrintLogic.test_get_baufreigabe_page_dimensions_escalates_to_a3 Prüft, dass ein größerer Kartenausschnitt (Baufreigabe) auf DIN A3 eskaliert wird. grün nie geprüft
TestPrintLogic.test_get_baufreigabe_page_dimensions_respects_a4_as_maximum_with_fallback Prüft, dass bei auf DIN A4 begrenztem Höchstformat ein eigentlich A3-großer Ausschnitt mit Fallback-Kennzeichnung auf A4 reduziert wird. grün nie geprüft
TestPrintLogic.test_get_baufreigabe_page_dimensions_falls_back_to_a3_for_oversize_extent Prüft, dass ein Ausschnitt, der auch DIN A3 übersteigt, mit Fallback-Kennzeichnung auf DIN A3 begrenzt wird. grün nie geprüft
TestPrintLogic.test_select_standard_page_layout_uses_a4_as_minimum_sheet Prüft, dass für einen kleinen Ausschnitt trotz Höchstgrenze DIN A3 mindestens DIN A4 als Blattgröße gewählt wird. grün nie geprüft
TestPrintLogic.test_select_standard_page_layout_limits_hauptkarte_to_a3 Prüft, dass ein die Fläche voll ausnutzender Ausschnitt auf DIN A3 als größtes zulässiges Format begrenzt wird. grün nie geprüft
TestPrintLogic.test_select_standard_page_layout_returns_none_if_a3_is_too_small Prüft, dass kein Layout gewählt wird (None), wenn der Ausschnitt selbst DIN A3 als Höchstformat übersteigt. grün nie geprüft
TestPrintLogic.test_get_standard_layout_dimensions_uses_a4_and_forces_fit_for_small_extent Prüft, dass für einen kleinen Ausschnitt DIN A4 gewählt und das Einpassen (force_fit) erzwungen wird. grün nie geprüft
TestPrintLogic.test_get_standard_layout_dimensions_caps_endlosrolle_width_at_2000_mm Prüft, dass bei aktiviertem Formfaktor (Endlosrolle) die Seitenbreite auf die maximale Rollenbreite (2000 mm) begrenzt wird. grün nie geprüft
TestPrintLogic.test_apply_standard_minimum_a4_fallback_for_small_page Prüft, dass eine zu kleine Seite auf die A4-Mindestgröße angehoben und als erzwungen (forced) markiert wird. grün nie geprüft
TestPrintLogic.test_apply_standard_minimum_a4_fallback_keeps_large_page Prüft, dass eine bereits ausreichend große Seite (A3) unverändert bleibt und nicht als erzwungen markiert wird. grün nie geprüft
TestPrintLogic.test_does_plot_fit_page_true_for_standard_a4 Prüft, dass ein Kartenobjekt, das in eine DIN A4-Seite passt, als passend erkannt wird. grün nie geprüft
TestPrintLogic.test_does_plot_fit_page_false_if_objects_exceed_page Prüft, dass ein Kartenobjekt, das die Seitenbreite überschreitet, als nicht passend erkannt wird. grün nie geprüft
TestPrintLogic.test_set_druckbereich_accepts_wie_kartenfenster Prüft, dass die Auswahl 'wie Kartenfenster' als Projektvariable 'druckbereich' gespeichert wird. grün nie geprüft
TestPrintLogic.test_get_canvas_extent_returns_valid_extent Prüft, dass der aktuelle Kartenausschnitt des Kartenfensters unverändert zurückgegeben wird. grün nie geprüft
TestPrintLogic.test_resolve_extent_uses_canvas_extent_without_buffer Prüft, dass bei Druckbereich 'wie Kartenfenster' der Kartenausschnitt ohne Puffer und ohne verknüpften Layer übernommen wird. grün nie geprüft
TestPrintLogic.test_resolve_extent_uses_rectangle_extent_without_buffer Prüft, dass bei Druckbereich 'Rechteck' der gezeichnete Ausschnitt ohne Puffer und ohne verknüpften Layer übernommen wird. grün nie geprüft

Plugin_SN_Basis/tests/test_pruef_ergebnis.py

Worum es in der Datei geht: Tests für sn_basis/modules/pruef_ergebnis.py::ist_verfahrens_db_aktion/erlaubte_persistierung (Issue #65).

Testgruppen:

  • IstVerfahrensDbAktionTests (2 Testfälle): — (Docstring fehlt)
  • ErlaubtePersistierungTests (2 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
IstVerfahrensDbAktionTests.test_liefert_true_fuer_alle_verfahrens_db_aktionen Prüft, dass ist_verfahrens_db_aktion für alle vier Verfahrens-DB-Aktionscodes True liefert. grün nie geprüft
IstVerfahrensDbAktionTests.test_liefert_false_fuer_andere_aktionen Prüft, dass ist_verfahrens_db_aktion für Nicht-Verfahrens-DB-Aktionen und ohne Aktion False liefert. grün nie geprüft
ErlaubtePersistierungTests.test_liefert_true_fuer_erzeugen_ueberschreiben_anhaengen Prüft, dass erlaubte_persistierung für Erzeugen/Überschreiben/Anhängen True liefert. grün nie geprüft
ErlaubtePersistierungTests.test_liefert_false_fuer_ueberspringen_und_reines_existieren Prüft, dass erlaubte_persistierung bei Überspringen und reinem 'datei_existiert' False liefert. grün nie geprüft

Plugin_SN_Basis/tests/test_pruefmanager.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestPruefmanager (24 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestPruefmanager.test_ok Prüft, dass ein bereits erfolgreiches Prüfergebnis ohne Nutzerinteraktion als 'ok' durchgereicht wird. grün geprüft am 2026-09-17
TestPruefmanager.test_leereingabe_erlaubt_ja Prüft, dass bei erlaubter leerer Eingabe eine Ja-Antwort des Nutzers die Entscheidung 'ok' liefert. grün geprüft am 2026-09-17
TestPruefmanager.test_leereingabe_erlaubt_nein Prüft, dass bei erlaubter leerer Eingabe eine Nein-Antwort die Aktion 'leereingabe_erlaubt' als abgelehnt bestehen lässt. grün geprüft am 2026-09-17
TestPruefmanager.test_standarddatei_vorschlagen_ja Prüft, dass eine Ja-Antwort auf den Vorschlag der Standarddatei die Entscheidung 'ok' mit dem Standardpfad als Kontext liefert. grün geprüft am 2026-09-17
TestPruefmanager.test_standarddatei_vorschlagen_nein Prüft, dass eine Nein-Antwort auf den Vorschlag der Standarddatei die Aktion 'standarddatei_vorschlagen' als abgelehnt bestehen lässt. grün geprüft am 2026-09-17
TestPruefmanager.test_temporaer_erlaubt_ja Prüft, dass eine Ja-Antwort auf die Rückfrage nach einer temporären Datei die Aktion 'temporaer_erzeugen' auslöst. grün geprüft am 2026-09-17
TestPruefmanager.test_temporaer_erlaubt_nein Prüft, dass eine Nein-Antwort auf die Rückfrage nach einer temporären Datei die Aktion 'temporaer_erlaubt' als abgelehnt bestehen lässt. grün geprüft am 2026-09-17
TestPruefmanager.test_layer_unsichtbar_ja Prüft, dass eine Ja-Antwort bei unsichtbarem Layer den Layer sichtbar schaltet und die Entscheidung 'ok' liefert. grün geprüft am 2026-09-17
TestPruefmanager.test_layer_unsichtbar_nein Prüft, dass eine Nein-Antwort bei unsichtbarem Layer die Aktion 'layer_unsichtbar' als abgelehnt bestehen lässt. grün geprüft am 2026-09-17
TestPruefmanager.test_unbekannte_aktion Prüft, dass eine unbekannte Aktion eine Warnung auslöst und unverarbeitet als Fehlschlag zurückgegeben wird. grün geprüft am 2026-09-17
TestPruefmanager.test_datei_existiert_overwrite Prüft, dass die Nutzerwahl 'überschreiben' bei bestehender Datei zur Aktion 'datei_existiert_ueberschreiben' führt. grün geprüft am 2026-09-17
TestPruefmanager.test_datei_existiert_append Prüft, dass die Nutzerwahl 'anhängen' bei bestehender Datei zur Aktion 'datei_existiert_anhaengen' führt. grün geprüft am 2026-09-17
TestPruefmanager.test_datei_existiert_cancel Prüft, dass die Nutzerwahl 'abbrechen' bei bestehender Datei zur Aktion 'datei_existiert_ueberspringen' führt. grün geprüft am 2026-09-17
TestPruefmanager.test_datei_existiert_in_non_qgis_mode_returns_input Prüft, dass außerhalb des QGIS-Modus bei bestehender Datei keine Rückfrage erfolgt, sondern die ursprüngliche Aktion unentschieden zurückgegeben wird. grün geprüft am 2026-09-17
TestPruefmanager.test_verfahrensgebiet_layer_existiert_ergaenzen Prüft, dass die Nutzerwahl 'ergänzen' bei bestehendem Verfahrensgebiet zur Aktion 'verfahrensgebiet_ergaenzen' führt. grün nie geprüft
TestPruefmanager.test_verfahrensgebiet_layer_existiert_abbrechen Prüft, dass die Nutzerwahl 'abbrechen' bei bestehendem Verfahrensgebiet ok=False mit Aktion 'verfahrensgebiet_abbrechen' liefert. grün nie geprüft
TestPruefmanager.test_verfahrensgebiet_layer_existiert_in_non_qgis_mode_returns_input Prüft, dass außerhalb des QGIS-Modus bei bestehendem Verfahrensgebiet keine Rückfrage erfolgt. grün nie geprüft
TestPruefmanager.test_report_error_kritische_aktion_ruft_error_auf Prüft, dass eine kritische Aktion (z. B. 'netzwerkfehler') über error() gemeldet wird, nicht über warning(). grün nie geprüft
TestPruefmanager.test_report_error_warn_aktion_ruft_warning_auf Prüft, dass eine Warn-Aktion (z. B. 'datei_nicht_gefunden') über warning() gemeldet wird, nicht über error(). grün nie geprüft
TestPruefmanager.test_report_error_unbekannte_aktion_faellt_auf_warning_zurueck Prüft, dass eine nicht eingestufte Aktion als Fallback über warning() gemeldet wird. grün nie geprüft
TestPruefmanager.test_frage_ja_nein_im_qgis_modus_fragt_nutzer Prüft, dass frage_ja_nein im QGIS-Modus den Nutzer fragt und dessen Antwort liefert. grün nie geprüft
TestPruefmanager.test_frage_ja_nein_ausserhalb_qgis_liefert_default_ohne_rueckfrage Prüft, dass frage_ja_nein außerhalb des QGIS-Modus den Default-Wert liefert, ohne den Nutzer zu fragen. grün nie geprüft
TestPruefmanager.test_frage_text_im_qgis_modus_fragt_nutzer Prüft, dass frage_text im QGIS-Modus den Nutzer fragt und Text plus OK-Status liefert. grün nie geprüft
TestPruefmanager.test_frage_text_ausserhalb_qgis_liefert_default_ohne_rueckfrage Prüft, dass frage_text außerhalb des QGIS-Modus den Standardtext mit OK=True liefert, ohne den Nutzer zu fragen. grün nie geprüft

Plugin_SN_Basis/tests/test_qgiscore_wrapper_helpers.py

Worum es in der Datei geht: Tests für sn_basis/functions/qgiscore_wrapper.py::polygon_zu_linie/layer_exists_in_gpkg (Issue #65).

Testgruppen:

  • PolygonZuLinieTests (7 Testfälle): — (Docstring fehlt)
  • LayerExistsInGpkgTests (4 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
PolygonZuLinieTests.test_none_liefert_none Prüft, dass polygon_zu_linie für None-Eingabe None liefert. grün nie geprüft
PolygonZuLinieTests.test_leere_geometrie_liefert_none Prüft, dass eine leere Geometrie None liefert. grün nie geprüft
PolygonZuLinieTests.test_stufe1_nutzt_boundary_wenn_vorhanden Prüft, dass eine Geometrie mit boundary() (QGIS 3.x-Pfad) deren Ergebnis direkt liefert. grün nie geprüft
PolygonZuLinieTests.test_stufe2_extrahiert_ringe_bei_einfachem_polygon Prüft, dass ohne boundary() die Ringe eines einfachen Polygons manuell extrahiert werden. grün nie geprüft
PolygonZuLinieTests.test_stufe2_extrahiert_alle_ringe_bei_multipolygon Prüft, dass bei einem MultiPolygon die Ringe aller Teilpolygone extrahiert werden. grün nie geprüft
PolygonZuLinieTests.test_stufe3_fallback_wenn_keine_ringe_extrahierbar Prüft, dass bei fehlgeschlagener Ringextraktion auf convertToType zurückgefallen wird. grün nie geprüft
PolygonZuLinieTests.test_alle_stufen_scheitern_liefert_none Prüft, dass polygon_zu_linie None liefert, wenn Ringextraktion und convertToType beide scheitern. grün nie geprüft
LayerExistsInGpkgTests.test_fehlende_datei_liefert_false Prüft, dass eine nicht vorhandene GPKG-Datei False liefert. grün nie geprüft
LayerExistsInGpkgTests.test_leerer_pfad_oder_layername_liefert_false Prüft, dass ein leerer Pfad oder Layername False liefert. grün nie geprüft
LayerExistsInGpkgTests.test_vorhandener_layer_liefert_true Prüft, dass ein in gpkg_contents eingetragener Layername als vorhanden erkannt wird. grün nie geprüft
LayerExistsInGpkgTests.test_fehlender_layer_liefert_false Prüft, dass ein nicht in gpkg_contents eingetragener Layername als nicht vorhanden gilt. grün nie geprüft

Plugin_SN_Basis/tests/test_qgisui_wrapper_helpers.py

Worum es in der Datei geht: Tests für sn_basis/functions/qgisui_wrapper.py::add_layer_to_project (Issue #65).

Testgruppen:

  • AddLayerToProjectTests (4 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
AddLayerToProjectTests.test_none_layer_liefert_false Prüft, dass add_layer_to_project für einen fehlenden Layer (None) False liefert. grün nie geprüft
AddLayerToProjectTests.test_mock_modus_liefert_true_ohne_projektzugriff Prüft, dass im Mock-Modus (ohne QGIS) ein gültiger Layer True liefert, ohne das Projekt anzufassen. grün nie geprüft
AddLayerToProjectTests.test_mit_qgis_fuegt_layer_dem_projekt_hinzu Prüft, dass bei verfügbarem QGIS der Layer über QgsProject.instance().addMapLayer hinzugefügt wird. grün nie geprüft
AddLayerToProjectTests.test_mit_qgis_fehler_liefert_false Prüft, dass ein Fehler beim Hinzufügen zum Projekt abgefangen wird und False liefert. grün nie geprüft

Plugin_SN_Basis/tests/test_settings_logic.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestSettingsLogic (4 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestSettingsLogic.test_load Prüft, dass load() jede bekannte Projektvariable genau einmal über get_variable() liest. grün geprüft am 2026-09-17
TestSettingsLogic.test_save Prüft, dass save() nur bekannte Variablen-Keys speichert und unbekannte Keys ignoriert. grün geprüft am 2026-09-17
TestSettingsLogic.test_load_handles_partial_values_with_empty_fallback Prüft, dass load() für jede Variable den (auch leeren) Wert von get_variable() unverändert übernimmt, selbst wenn nicht alle Variablen im Mock konfiguriert sind. grün geprüft am 2026-09-17
TestSettingsLogic.test_save_empty_string_value_is_persisted Prüft, dass save() einen leeren String als gültigen Wert speichert, statt ihn wie einen fehlenden Key zu behandeln. grün geprüft am 2026-09-17

Plugin_SN_Basis/tests/test_settings_tab.py

Worum es in der Datei geht: Tests für sn_basis/ui/tabs/settings_tab.py::save_data/load_data (Issue #65).

Testgruppen:

  • SaveDataTests (2 Testfälle): — (Docstring fehlt)
  • LoadDataTests (4 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
SaveDataTests.test_sammelt_text_und_combobox_werte_inklusive_landkreiskennzahl Prüft, dass save_data Text- und Dropdown-Werte sammelt und die Landkreiskennzahl separat ergänzt. grün nie geprüft
SaveDataTests.test_ohne_landkreis_dropdown_wird_keine_kennzahl_ergaenzt Prüft, dass ohne Landkreis-Dropdown im Formular keine 'landkreis_kennzahl' ergänzt wird. grün nie geprüft
LoadDataTests.test_befuellt_textfelder_aus_gespeicherten_daten Prüft, dass load_data ein Textfeld mit dem gespeicherten Wert befüllt. grün nie geprüft
LoadDataTests.test_ohne_gespeicherten_wert_bleibt_textfeld_leer Prüft, dass load_data ohne gespeicherten Wert das Textfeld auf einen leeren Text setzt. grün nie geprüft
LoadDataTests.test_waehlt_combobox_eintrag_bei_bekanntem_namen Prüft, dass load_data im Landkreis-Dropdown den gespeicherten Landkreisnamen auswählt. grün nie geprüft
LoadDataTests.test_unbekannter_gespeicherter_name_waehlt_ersten_eintrag Prüft, dass load_data bei einem nicht mehr vorhandenen Landkreisnamen auf den ersten Eintrag zurückfällt. grün nie geprüft

Plugin_SN_Basis/tests/test_stilpruefer.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestStilpruefer (4 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestStilpruefer.test_keine_datei_angegeben Prüft, dass eine leere Pfadangabe als 'ok' ohne Kontext akzeptiert wird (Stil ist optional). grün geprüft am 2026-09-17
TestStilpruefer.test_datei_existiert_mit_qml Prüft, dass eine existierende .qml-Datei als 'stil_anwendbar' bestätigt wird. grün geprüft am 2026-09-17
TestStilpruefer.test_datei_existiert_falsche_endung Prüft, dass eine existierende Datei ohne .qml-Endung als 'falsche_endung' abgelehnt wird. grün geprüft am 2026-09-17
TestStilpruefer.test_datei_existiert_nicht Prüft, dass ein nicht existierender .qml-Pfad als 'datei_nicht_gefunden' abgelehnt wird. grün geprüft am 2026-09-17

Plugin_SN_Basis/tests/test_sys_wrapper.py

Worum es in der Datei geht: Unit-Tests für sn_basis.functions.sys_wrapper.get_plugin_root().

Testgruppen:

  • TestGetPluginRoot (1 Testfälle): — (Docstring fehlt)
  • JoinPathTests (1 Testfälle): — (Docstring fehlt)
  • EnsureDirTests (2 Testfälle): — (Docstring fehlt)
  • GetattrSafeTests (2 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestGetPluginRoot.test_get_plugin_root_folgt_keiner_verzeichnisverknuepfung Prüft, dass get_plugin_root() bei einem über eine Verzeichnisverknüpfung (wie von link_qgis_profile.py angelegt) erreichten Modul den verlinkten Pfad liefert, statt zum echten Zielverzeichnis aufzulösen (Verfahrensgebiet #50). grün geprüft am 2026-09-17
JoinPathTests.test_verbindet_mehrere_pfadbestandteile Prüft, dass join_path mehrere Bestandteile OS-sicher zu einem Path zusammenfügt. grün nie geprüft
EnsureDirTests.test_legt_fehlendes_verzeichnis_inklusive_eltern_an Prüft, dass ensure_dir ein fehlendes Verzeichnis samt Elternverzeichnissen anlegt. grün nie geprüft
EnsureDirTests.test_vorhandenes_verzeichnis_wirft_keinen_fehler Prüft, dass ensure_dir bei einem bereits vorhandenen Verzeichnis keinen Fehler wirft. grün nie geprüft
GetattrSafeTests.test_liefert_vorhandenes_attribut Prüft, dass getattr_safe ein vorhandenes Attribut liefert. grün nie geprüft
GetattrSafeTests.test_liefert_default_bei_fehlendem_attribut Prüft, dass getattr_safe bei fehlendem Attribut den Default-Wert liefert. grün nie geprüft

Plugin_SN_Basis/tests/test_text_wrapper.py

Worum es in der Datei geht: Unit-Tests für sn_basis.functions.text_wrapper.

Testgruppen:

  • TestSanitizeBezeichner (7 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestSanitizeBezeichner.test_umlaute_bleiben_erhalten Prüft, dass Umlaute und ß nicht durch den Ersatz entfernt werden. grün nie geprüft
TestSanitizeBezeichner.test_bindestrich_bleibt_erhalten Prüft, dass ein Bindestrich im Bezeichner erhalten bleibt (Issue #42). grün nie geprüft
TestSanitizeBezeichner.test_unterstrich_bleibt_erhalten Prüft, dass ein Unterstrich im Bezeichner erhalten bleibt. grün nie geprüft
TestSanitizeBezeichner.test_leerzeichen_wird_durch_ersatz_zusammengefasst Prüft, dass Leerzeichen (kein zulässiges Zeichen) zu einem Ersatzzeichen werden. grün nie geprüft
TestSanitizeBezeichner.test_fuehrender_und_folgender_ersatz_wird_entfernt Prüft, dass ein Ersatzzeichen am Anfang oder Ende des Ergebnisses entfernt wird. grün nie geprüft
TestSanitizeBezeichner.test_eigenes_ersatzzeichen_wird_verwendet Prüft, dass ein abweichendes Ersatzzeichen anstelle von Unterstrich genutzt wird. grün nie geprüft
TestSanitizeBezeichner.test_nur_unzulaessige_zeichen_ergibt_leeren_string Prüft, dass ein Bezeichner ganz aus unzulässigen Zeichen zu einem leeren String wird. grün nie geprüft

Plugin_SN_Basis/tests/test_variable_wrapper.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestVariableWrapper (6 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestVariableWrapper.test_set_variable_project_noop_write_is_skipped Prüft, dass set_variable() im Projekt-Scope nicht schreibt, wenn der neue Wert dem bestehenden entspricht. grün nie geprüft
TestVariableWrapper.test_set_variable_project_changed_value_is_written Prüft, dass set_variable() im Projekt-Scope bei geändertem Wert mit dem Präfix 'sn_' geschrieben wird. grün nie geprüft
TestVariableWrapper.test_set_variable_global_writes_prefixed_name Prüft, dass set_variable() im globalen Scope den Variablennamen mit 'sn_' vorangestellt schreibt. grün nie geprüft
TestVariableWrapper.test_get_variable_global_returns_empty_string_fallback Prüft, dass get_variable() im globalen Scope für eine nicht gesetzte Variable einen leeren String liefert. grün nie geprüft
TestVariableWrapper.test_get_variable_invalid_scope_raises Prüft, dass get_variable() bei einem unbekannten Scope-Namen einen ValueError auslöst. grün nie geprüft
TestVariableWrapper.test_set_variable_invalid_scope_raises Prüft, dass set_variable() bei einem unbekannten Scope-Namen einen ValueError auslöst. grün nie geprüft

Plugin_SN_Basis/tests/test_verfahrensgebiet_manager.py

Worum es in der Datei geht: Tests für sn_basis/functions/verfahrensgebiet_manager.py (zentrale Layer-Verfolgung, Issue #65).

Testgruppen:

  • TestVerfahrensgebietManager (5 Testfälle): — (Docstring fehlt)
  • OnHandlerTests (5 Testfälle): — (Docstring fehlt)
  • ListenerSetupTests (3 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestVerfahrensgebietManager.test_get_verfahrensgebiet_layer_id_returns_value Prüft, dass get_verfahrensgebiet_layer_id() die in der Projektvariable gespeicherte Layer-ID liefert. grün nie geprüft
TestVerfahrensgebietManager.test_get_verfahrensgebiet_layer_id_returns_none_for_empty_value Prüft, dass get_verfahrensgebiet_layer_id() bei leerer Projektvariable None statt eines leeren Strings liefert. grün nie geprüft
TestVerfahrensgebietManager.test_set_verfahrensgebiet_layer_id_writes_project_variable Prüft, dass set_verfahrensgebiet_layer_id() die Layer-ID als Projektvariable 'verfahrensgebiet_layer' speichert. grün nie geprüft
TestVerfahrensgebietManager.test_update_without_layer_does_not_write_when_already_empty Prüft, dass ohne gefundenen Verfahrensgebiet-Layer keine Schreibaktion erfolgt, wenn die Variable bereits leer ist. grün nie geprüft
TestVerfahrensgebietManager.test_update_with_layer_writes_variable Prüft, dass ein gefundener Verfahrensgebiet-Layer seine ID als Projektvariable speichert. grün nie geprüft
OnHandlerTests.test_on_project_changed_ohne_layer_setzt_variable_leer Prüft, dass _on_project_changed die Variable leert, wenn kein Verfahrensgebiet-Layer existiert. grün nie geprüft
OnHandlerTests.test_on_project_changed_mit_layer_setzt_variable Prüft, dass _on_project_changed die Layer-ID eines gefundenen Verfahrensgebiet-Layers übernimmt. grün nie geprüft
OnHandlerTests.test_on_layers_added_findet_neuen_layer Prüft, dass _on_layers_added nach neu hinzugefügten Layern sucht und die Variable aktualisiert. grün nie geprüft
OnHandlerTests.test_on_layer_removed_bei_aktuellem_layer_sucht_neu Prüft, dass das Entfernen des aktuell aktiven Verfahrensgebiet-Layers eine Neusuche auslöst. grün nie geprüft
OnHandlerTests.test_on_layer_removed_bei_anderem_layer_aendert_nichts Prüft, dass das Entfernen eines anderen Layers keine Neusuche auslöst. grün nie geprüft
ListenerSetupTests.test_setup_ohne_qgis_tut_nichts Prüft, dass setup_verfahrensgebiet_listener ohne QGIS keine Signale registriert. grün nie geprüft
ListenerSetupTests.test_setup_verbindet_signale_und_ist_idempotent Prüft, dass setup_verfahrensgebiet_listener die Projektsignale verbindet und ein zweiter Aufruf nichts doppelt registriert. grün nie geprüft
ListenerSetupTests.test_teardown_trennt_alle_signale_und_ist_idempotent Prüft, dass teardown_verfahrensgebiet_listener alle Signale trennt und mehrfacher Aufruf nicht fehlschlägt. grün nie geprüft

Paket sn_verfahrensgebiet

Fachplugin, Ordner Plugin_SN_Verfahrensgebiet – 12 Testdateien mit 208 Testfällen (166 grün, 34 rot, 8 übersprungen).

Plugin_SN_Verfahrensgebiet/tests/test_beteiligung_pruefung.py

Worum es in der Datei geht: Unit-Tests für sn_verfahrensgebiet.functions.beteiligung_pruefung.

Testgruppen:

  • TestBaueFlurstueckCsv (12 Testfälle): — (Docstring fehlt)
  • TestBaueFlurstueckCsvListe (1 Testfälle): — (Docstring fehlt)
  • TestHoleVerfahrensgebietLayer (3 Testfälle): — (Docstring fehlt)
  • TestFordereManuellesLadenAn (2 Testfälle): try2/try3 laden nicht mehr automatisch, sondern fordern den Nutzer auf,
  • TestTry3Bootstrap (1 Testfälle): — (Docstring fehlt)
  • TestBeteiligungPruefenDispatch (2 Testfälle): Dispatch-Logik in beteiligung_pruefen(): try1 unverändert, try2/try3
  • TestLadeBeteiligungCsv (4 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestBaueFlurstueckCsv.test_normalfall_mit_fuehrenden_nullen — (Docstring fehlt) grün nie geprüft
TestBaueFlurstueckCsv.test_nenner_null_wird_zu_unterstrichen — (Docstring fehlt) grün nie geprüft
TestBaueFlurstueckCsv.test_nenner_leer_wird_zu_unterstrichen — (Docstring fehlt) grün nie geprüft
TestBaueFlurstueckCsv.test_gemarkung_ohne_fuehrende_nullen_wird_aufgefuellt — (Docstring fehlt) grün nie geprüft
TestBaueFlurstueckCsv.test_ungueltiges_format_gibt_none — (Docstring fehlt) grün nie geprüft
TestBaueFlurstueckCsv.test_leerer_wert_gibt_none — (Docstring fehlt) grün nie geprüft
TestBaueFlurstueckCsv.test_nenner_9001_wird_zu_buchstabe_a — (Docstring fehlt) grün nie geprüft
TestBaueFlurstueckCsv.test_nenner_9002_wird_zu_buchstabe_b — (Docstring fehlt) grün nie geprüft
TestBaueFlurstueckCsv.test_nenner_9026_wird_zu_buchstabe_z — (Docstring fehlt) grün nie geprüft
TestBaueFlurstueckCsv.test_nenner_ausserhalb_buchstaben_bereich_bleibt_numerisch — (Docstring fehlt) grün nie geprüft
TestBaueFlurstueckCsv.test_nenner_9001_mit_fuehrenden_nullen_wird_erkannt — (Docstring fehlt) grün nie geprüft
TestBaueFlurstueckCsv.test_einstellige_folge_wird_auf_2_stellen_aufgefuellt — (Docstring fehlt) grün nie geprüft
TestBaueFlurstueckCsvListe.test_nur_gueltige_zeilen_in_liste — (Docstring fehlt) grün nie geprüft
TestHoleVerfahrensgebietLayer.test_layer_per_name_hat_vorrang_vor_combo_auswahl — (Docstring fehlt) grün nie geprüft
TestHoleVerfahrensgebietLayer.test_combo_auswahl_als_fallback_ohne_namens_layer — (Docstring fehlt) grün nie geprüft
TestHoleVerfahrensgebietLayer.test_kein_layer_gibt_none — (Docstring fehlt) grün nie geprüft
TestFordereManuellesLadenAn.test_ohne_vef_vkzf_nennt_fehlende_kennzeichen — (Docstring fehlt) grün nie geprüft
TestFordereManuellesLadenAn.test_mit_vef_vkzf_nennt_verfahrensnummer — (Docstring fehlt) grün nie geprüft
TestTry3Bootstrap.test_setzt_verfahrensnummer_und_fordert_manuelles_laden_an — (Docstring fehlt) grün nie geprüft
TestBeteiligungPruefenDispatch.test_layer_ohne_kennzeichen_fordert_manuelles_laden_an — (Docstring fehlt) grün nie geprüft
TestBeteiligungPruefenDispatch.test_kein_layer_setzt_verfahrensnummer_und_fordert_laden_an — (Docstring fehlt) grün nie geprüft
TestLadeBeteiligungCsv.test_dialog_abgebrochen_gibt_none — (Docstring fehlt) grün nie geprüft
TestLadeBeteiligungCsv.test_fehlende_flurstueck_spalte_wirft_fehler — (Docstring fehlt) grün nie geprüft
TestLadeBeteiligungCsv.test_leere_datei_wirft_fehler — (Docstring fehlt) grün nie geprüft
TestLadeBeteiligungCsv.test_erfolgsfall_gibt_zeilen_und_spalten_zurueck — (Docstring fehlt) grün nie geprüft

Plugin_SN_Verfahrensgebiet/tests/test_dockwidget.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestDockWidget (2 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestDockWidget.test_init_tabs_with_services_injects_available_services — (Docstring fehlt) grün nie geprüft
TestDockWidget.test_init_tabs_with_services_reports_errors — (Docstring fehlt) grün nie geprüft

Plugin_SN_Verfahrensgebiet/tests/test_flurstueck_alkis.py

Worum es in der Datei geht: Unit-Tests für das flurstueck_alkis-Modul.

Testgruppen:

  • TestFlurstueckAlkis (11 Testfälle): — (Docstring fehlt)
  • TestFlurstueckAlkisAnhaengenDedup (3 Testfälle): Anhängen an einen bestehenden Flurstück-Layer (Issue #28).
Testfall prüft Status geprüft
TestFlurstueckAlkis.test_user_cancel_returns_none Prüft, dass ein Abbruch im Eingabedialog (ok=False) (None, LoadStatus.NONE) liefert. grün nie geprüft
TestFlurstueckAlkis.test_empty_text_after_confirmation_returns_none Prüft, dass ein bestätigter, aber leerer Eingabetext ebenfalls (None, LoadStatus.NONE) liefert. grün nie geprüft
TestFlurstueckAlkis.test_invalid_wfs_layer_returns_none Prüft, dass ein ungültiger WFS-Layer (None, LoadStatus.NONE) liefert. grün nie geprüft
TestFlurstueckAlkis.test_success_returns_layer_and_first_status Prüft, dass ohne bestehenden Layer der von lade_flurstuecke_per_gemarkung gelieferte Layer mit LoadStatus.FIRST zurückgegeben wird. rot (Baseline) nie geprüft
TestFlurstueckAlkis.test_sql_filter_contains_all_schluessel Prüft, dass lade_flurstuecke_per_gemarkung für jeden Gemarkungsschlüssel eine eigene WFS-Anfrage mit dessen Schlüssel stellt. rot (Baseline) nie geprüft
TestFlurstueckAlkis.test_existing_layer_reload_yes Prüft, dass bei bestehendem Layer und Klick auf 'Überschreiben' der alte Layer entfernt und LoadStatus.RELOAD geliefert wird. rot (Baseline) nie geprüft
TestFlurstueckAlkis.test_existing_layer_abbrechen_returns_none Prüft, dass bei bestehendem Layer und Klick auf 'Abbrechen' nichts verändert wird und (None, LoadStatus.NONE) geliefert wird. grün nie geprüft
TestFlurstueckAlkis.test_vorgabe_schluessel_prefills_default_text Prüft, dass vorgabe_schluessel als vorbelegter default_text im Eingabedialog erscheint. rot (Baseline) nie geprüft
TestFlurstueckAlkis.test_vorgabe_namen_appears_in_label Prüft, dass vorgabe_namen im Beschriftungstext des Eingabedialogs erscheint. rot (Baseline) nie geprüft
TestFlurstueckAlkis.test_backwards_compatible_no_new_params Prüft, dass flurstueck_alkis() ohne die neuen optionalen Parameter weiterhin fehlerfrei einen Layer mit LoadStatus.FIRST liefert. rot (Baseline) nie geprüft
TestFlurstueckAlkis.test_ohne_schluessel_abfrage_ueberspringt_ask_text Prüft, dass ohne_schluessel_abfrage=True vorgabe_schluessel direkt verwendet und ask_text nicht aufgerufen wird. grün nie geprüft
TestFlurstueckAlkisAnhaengenDedup.test_append_ueberspringt_bereits_vorhandene_flurstuecke Prüft, dass beim Anhängen bereits vorhandene flurstueckskennzeichen nicht erneut hinzugefügt werden. grün nie geprüft
TestFlurstueckAlkisAnhaengenDedup.test_append_ohne_kennzeichen_feld_haengt_alles_an Prüft, dass ohne flurstueckskennzeichen-Feld weiterhin alle Features angehängt werden (Rückfallverhalten). grün nie geprüft
TestFlurstueckAlkisAnhaengenDedup.test_ohne_schluessel_abfrage_append_dedup ohne_schluessel_abfrage=True: Anhängen dedupliziert trotzdem, ohne nach Schlüsseln zu fragen (#47). grün nie geprüft

Plugin_SN_Verfahrensgebiet/tests/test_gemarkung_alkis.py

Worum es in der Datei geht: Unit-Tests für sn_verfahrensgebiet.functions.gemarkung_alkis.

Testgruppen:

  • TestExtractSchluesselUndName (4 Testfälle): — (Docstring fehlt)
  • TestGemarkungSchluesselbbox (6 Testfälle): — (Docstring fehlt)
  • TestGemarkungSchluesselnurNummern (2 Testfälle): — (Docstring fehlt)
  • TestLadeGemarkungenlayer (2 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestExtractSchluesselUndName.test_standard_attribute — (Docstring fehlt) rot (Baseline) nie geprüft
TestExtractSchluesselUndName.test_fallback_attribute — (Docstring fehlt) rot (Baseline) nie geprüft
TestExtractSchluesselUndName.test_missing_attribute_returns_empty — (Docstring fehlt) grün nie geprüft
TestExtractSchluesselUndName.test_none_value_returns_empty — (Docstring fehlt) grün nie geprüft
TestGemarkungSchluesselbbox.test_success_bbox_filter WFS-BBox-Filter liefert Features → korrekte Tupel-Liste. übersprungen – Legacy API (by_bbox) not available in current module nie geprüft
TestGemarkungSchluesselbbox.test_fallback_when_bbox_fails BBox-Filter schlägt fehl → Fallback auf Volllade + client-seitige Filterung. übersprungen – Legacy API (by_bbox) not available in current module nie geprüft
TestGemarkungSchluesselbbox.test_both_layers_fail_returns_empty Beide Lade-Strategien scheitern → leere Liste. übersprungen – Legacy API (by_bbox) not available in current module nie geprüft
TestGemarkungSchluesselbbox.test_deduplication_and_sorting Doppelte Schlüssel werden dedupliziert, Ergebnis ist sortiert. übersprungen – Legacy API (by_bbox) not available in current module nie geprüft
TestGemarkungSchluesselbbox.test_feature_without_schluessel_skipped Feature ohne Schlüssel-Attribut wird übersprungen. übersprungen – Legacy API (by_bbox) not available in current module nie geprüft
TestGemarkungSchluesselbbox.test_exception_returns_empty Exception im Ladevorgang → leere Liste (kein Crash). übersprungen – Legacy API (by_bbox) not available in current module nie geprüft
TestGemarkungSchluesselnurNummern.test_returns_only_nummern — (Docstring fehlt) übersprungen – Legacy API (by_bbox) not available in current module nie geprüft
TestGemarkungSchluesselnurNummern.test_empty_input_returns_empty — (Docstring fehlt) übersprungen – Legacy API (by_bbox) not available in current module nie geprüft
TestLadeGemarkungenlayer.test_returns_layer_when_service_reachable Dienst erreichbar (isValid=True) → Layer-Objekt zurückgegeben. grün nie geprüft
TestLadeGemarkungenlayer.test_returns_none_when_service_unreachable Dienst nicht erreichbar (isValid=False) → None zurückgegeben. grün nie geprüft

Plugin_SN_Verfahrensgebiet/tests/test_grenzpunkt_alkis.py

Worum es in der Datei geht: Unit-Tests für sn_verfahrensgebiet.functions.grenzpunkt_alkis.

Testgruppen:

  • TestExtrahiereGmlIds (5 Testfälle): — (Docstring fehlt)
  • TestGrenzpunktAlkis (7 Testfälle): — (Docstring fehlt)
  • TestGrenzpunkteGemarkungsweiseStil (1 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestExtrahiereGmlIds.test_xlink_href_format URN-Format 'urn:adv:oid:DEABC123' → nur 'DEABC123' extrahiert. grün nie geprüft
TestExtrahiereGmlIds.test_plain_gml_id Plain-GML-ID ohne Doppelpunkt → direkt übernommen. grün nie geprüft
TestExtrahiereGmlIds.test_empty_value_skipped Leerer gehoertZu-Wert wird übersprungen. grün nie geprüft
TestExtrahiereGmlIds.test_deduplication Doppelte Referenzen werden dedupliziert. grün nie geprüft
TestExtrahiereGmlIds.test_sorted_output Rückgabe ist aufsteigend sortiert. grün nie geprüft
TestGrenzpunktAlkis.test_no_vg_layer_returns_none — (Docstring fehlt) grün nie geprüft
TestGrenzpunktAlkis.test_invalid_punktort_layer — (Docstring fehlt) grün nie geprüft
TestGrenzpunktAlkis.test_empty_punktort_layer — (Docstring fehlt) grün nie geprüft
TestGrenzpunktAlkis.test_no_gml_ids_returns_pta_only — (Docstring fehlt) rot (Baseline) nie geprüft
TestGrenzpunktAlkis.test_grenzpunkt_batch_empty — (Docstring fehlt) rot (Baseline) nie geprüft
TestGrenzpunktAlkis.test_success_returns_both_layers — (Docstring fehlt) rot (Baseline) nie geprüft
TestGrenzpunktAlkis.test_extent_derived_from_vg_layer Wenn kein extent übergeben → Extent aus VG-Layer holen. rot (Baseline) nie geprüft
TestGrenzpunkteGemarkungsweiseStil.test_stil_wird_nach_dem_laden_auf_den_ergebnis_layer_angewendet Prüft, dass grenzpunkte_gemarkungsweise() nach dem Laden apply_style() mit dem neuen ALKIS-Grenzpunkt-Stil auf den fertigen Join-Layer anwendet (#53). grün nie geprüft

Plugin_SN_Verfahrensgebiet/tests/test_knickpunkt_pruefung.py

Worum es in der Datei geht: Unit-Tests für sn_verfahrensgebiet.functions.knickpunkt_pruefung.

Testgruppen:

  • TestExtrahiereKnickpunkte (4 Testfälle): — (Docstring fehlt)
  • TestKnickpunktPruefungInputvalidierung (3 Testfälle): — (Docstring fehlt)
  • TestKnickpunktPruefungKlassifizierung (2 Testfälle): Testet die Grün/Rot/Orange-Klassifizierung mit gesteuertem QGIS-Mock.
  • TestFehlendKnickpunkteViaVerbindungslinien (4 Testfälle): Direkte Tests für _fehlende_knickpunkte_via_verbindungslinien.
Testfall prüft Status geprüft
TestExtrahiereKnickpunkte.test_leerer_layer_gibt_leere_liste — (Docstring fehlt) grün nie geprüft
TestExtrahiereKnickpunkte.test_keine_gueltige_geometrie_gibt_leere_liste — (Docstring fehlt) grün nie geprüft
TestExtrahiereKnickpunkte.test_feature_mit_leerer_geometrie_gibt_leere_liste — (Docstring fehlt) grün nie geprüft
TestExtrahiereKnickpunkte.test_qgis_nicht_verfuegbar_gibt_leere_liste Wenn qgis.core kein QgsPointXY hat (ImportError in Funktion), leere Liste. grün nie geprüft
TestKnickpunktPruefungInputvalidierung.test_keine_knickpunkte_gibt_none_zurueck — (Docstring fehlt) grün nie geprüft
TestKnickpunktPruefungInputvalidierung.test_kein_punktort_layer_gibt_none_zurueck — (Docstring fehlt) grün nie geprüft
TestKnickpunktPruefungInputvalidierung.test_abbruch_via_progress_gibt_none_zurueck — (Docstring fehlt) grün nie geprüft
TestKnickpunktPruefungKlassifizierung.test_identischer_punkt_wird_gruen_gezaehlt PunktortTA exakt am Knickpunkt → identisch_count == 1. grün nie geprüft
TestKnickpunktPruefungKlassifizierung.test_kein_pta_an_knickpunkt_wird_rot_gezaehlt Kein PunktortTA am Knickpunkt → kein_pta_count == 1. grün nie geprüft
TestFehlendKnickpunkteViaVerbindungslinien.test_leere_union_gibt_null_zurueck bror_union.isEmpty() == True → (0, []). grün nie geprüft
TestFehlendKnickpunkteViaVerbindungslinien.test_weniger_als_zwei_pta_auf_ring_kein_orange Nur 1 gematchter PunktortTA auf Ring → keine fehlenden Knickpunkte. grün nie geprüft
TestFehlendKnickpunkteViaVerbindungslinien.test_ungematchter_pta_im_puffer_wird_orange Nicht-gematchter PunktortTA innerhalb 3-cm-Puffer → orange gezählt. grün nie geprüft
TestFehlendKnickpunkteViaVerbindungslinien.test_ungematchter_pta_ausserhalb_puffer_kein_orange Nicht-gematchter PunktortTA außerhalb Puffer → nicht orange gezählt. grün nie geprüft

Plugin_SN_Verfahrensgebiet/tests/test_main.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestPluginMain (4 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestPluginMain.test_init_sets_services_and_names — (Docstring fehlt) grün nie geprüft
TestPluginMain.test_initGui_registers_action_when_basis_ui_exists — (Docstring fehlt) grün nie geprüft
TestPluginMain.test_run_creates_dock_and_marks_toolbar_active — (Docstring fehlt) grün nie geprüft
TestPluginMain.test_unload_removes_dock_and_action — (Docstring fehlt) grün nie geprüft

Plugin_SN_Verfahrensgebiet/tests/test_verfahrensgebiet_alkis.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestVerfahrensgebietAlkis (8 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestVerfahrensgebietAlkis.test_check_existing_layer_first_load — (Docstring fehlt) grün nie geprüft
TestVerfahrensgebietAlkis.test_check_existing_layer_keep_existing — (Docstring fehlt) grün nie geprüft
TestVerfahrensgebietAlkis.test_verfahrensgebiet_alkis_fails_when_verfahrensnummer_missing — (Docstring fehlt) grün nie geprüft
TestVerfahrensgebietAlkis.test_verfahrensgebiet_alkis_fails_on_invalid_wfs_layer — (Docstring fehlt) grün nie geprüft
TestVerfahrensgebietAlkis.test_verfahrensgebiet_alkis_success_single_kombination Einzelne (adv_name, bezeichnung)-Kombination → kein Dialog, Memory-Layer zurück. grün nie geprüft
TestVerfahrensgebietAlkis.test_verfahrensgebiet_alkis_multi_kombination_dialog_auswahl Zwei verschiedene Kombinationen → Dialog wird gezeigt, gewählte Features genutzt. grün nie geprüft
TestVerfahrensgebietAlkis.test_verfahrensgebiet_alkis_multi_kombination_dialog_abbruch Zwei verschiedene Kombinationen → Nutzer bricht Dialog ab → NONE. grün nie geprüft
TestVerfahrensgebietAlkis.test_verfahrensgebiet_alkis_multi_kombination_mehrfachauswahl Zwei verschiedene Kombinationen → beide ausgewählt → beide Feature-Gruppen genutzt. grün nie geprüft

Plugin_SN_Verfahrensgebiet/tests/test_verfahrensgebiet_alkis_komplett.py

Worum es in der Datei geht: Unit-Tests für sn_verfahrensgebiet.functions.verfahrensgebiet_alkis_komplett.

Testgruppen:

  • TestSelectByLocation (3 Testfälle): — (Docstring fehlt)
  • TestFuegeVkzFeldHinzu (3 Testfälle): — (Docstring fehlt)
  • TestFlaechenvergleich (8 Testfälle): — (Docstring fehlt)
  • TestVerfahrensgebietAlkisKomplett (16 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestSelectByLocation.test_processing_not_available_returns_zero — (Docstring fehlt) grün nie geprüft
TestSelectByLocation.test_processing_success_returns_count — (Docstring fehlt) grün nie geprüft
TestSelectByLocation.test_processing_exception_returns_zero — (Docstring fehlt) grün nie geprüft
TestFuegeVkzFeldHinzu.test_empty_vkz_does_nothing — (Docstring fehlt) grün nie geprüft
TestFuegeVkzFeldHinzu.test_none_vkz_does_nothing — (Docstring fehlt) grün nie geprüft
TestFuegeVkzFeldHinzu.test_vkz_field_added — (Docstring fehlt) grün nie geprüft
TestFlaechenvergleich.test_gleiche_flaeche_stimmt_ueberein — (Docstring fehlt) grün nie geprüft
TestFlaechenvergleich.test_verschiedene_flaeche_stimmt_nicht_ueberein — (Docstring fehlt) grün nie geprüft
TestFlaechenvergleich.test_differenz_innerhalb_toleranz — (Docstring fehlt) grün nie geprüft
TestFlaechenvergleich.test_differenz_ausserhalb_toleranz — (Docstring fehlt) grün nie geprüft
TestFlaechenvergleich.test_flaechen_werte_korrekt — (Docstring fehlt) grün nie geprüft
TestFlaechenvergleich.test_lese_toleranz_default_ist_null — (Docstring fehlt) grün nie geprüft
TestFlaechenvergleich.test_lese_toleranz_parst_string — (Docstring fehlt) grün nie geprüft
TestFlaechenvergleich.test_lese_toleranz_ungueltig_fallback_null — (Docstring fehlt) grün nie geprüft
TestVerfahrensgebietAlkisKomplett.test_vg_alkis_none_aborts — (Docstring fehlt) grün nie geprüft
TestVerfahrensgebietAlkisKomplett.test_flst_none_aborts — (Docstring fehlt) grün nie geprüft
TestVerfahrensgebietAlkisKomplett.test_no_selection_returns_none_enriched — (Docstring fehlt) grün nie geprüft
TestVerfahrensgebietAlkisKomplett.test_invalid_enriched_layer_returns_none — (Docstring fehlt) grün nie geprüft
TestVerfahrensgebietAlkisKomplett.test_progress_cancel_after_step1_returns_none Abbruch nach Schritt 1 → sofortiger sauberer Rückgabestatus. grün nie geprüft
TestVerfahrensgebietAlkisKomplett.test_success_flaechen_match_zeigt_info Flächenübereinstimmung → show_info_dialog mit erwartetem Text. grün nie geprüft
TestVerfahrensgebietAlkisKomplett.test_no_vkz_variable_passes_empty_string — (Docstring fehlt) grün nie geprüft
TestVerfahrensgebietAlkisKomplett.test_flaechen_abweichung_abbrechen_kein_detailcheck Abweichung + Abbrechen → knickpunkt_pruefung wird NICHT aufgerufen. grün nie geprüft
TestVerfahrensgebietAlkisKomplett.test_flaechen_abweichung_als_vg_laden Abweichung + Als VG laden → BROR-Layer wird umbenannt und als grün nie geprüft
TestVerfahrensgebietAlkisKomplett.test_flaechen_abweichung_detailpruefung_startet_knickpruefung Abweichung + Detailprüfung → lade_punktort_ta + knickpunkt_pruefung grün nie geprüft
TestVerfahrensgebietAlkisKomplett.test_bror_layer_bleibt_bei_erfolg_im_projekt Bei Erfolg darf der BROR-Layer NICHT entfernt werden. grün nie geprüft
TestVerfahrensgebietAlkisKomplett.test_bror_layer_wird_bei_fehler_entfernt Bei Fehler (flst_alkis NONE) wird der BROR-Layer aus dem Projekt entfernt. grün nie geprüft
TestVerfahrensgebietAlkisKomplett.test_kein_vkz_kein_landkreis_dialog_abgebrochen Weder Verfahrensnummer noch Landkreis gesetzt, Nutzer bricht den grün nie geprüft
TestVerfahrensgebietAlkisKomplett.test_kein_vkz_kein_landkreis_dialog_liefert_landkreis Weder Verfahrensnummer noch Landkreis gesetzt, Nutzer wählt einen grün nie geprüft
TestVerfahrensgebietAlkisKomplett.test_landkreis_modus_wird_bei_fehlender_vkz_verwendet Keine Verfahrensnummer, aber Landkreis gesetzt → Landkreis-Suchpfad grün nie geprüft
TestVerfahrensgebietAlkisKomplett.test_landkreis_modus_nur_laden_ueberspringt_dialog2 nur_laden=True → Funktion kehrt sofort zurück, Dialog 2 (Gemarkung grün nie geprüft

Plugin_SN_Verfahrensgebiet/tests/test_verfahrensgebiet_edit_service.py

Worum es in der Datei geht: Unit-Tests für das Verfahrensgebiet-Edit-Service-Modul.

Testgruppen:

  • TestPruefeFlurstueckLayer (3 Testfälle): — (Docstring fehlt)
  • TestPruefeAuswahl (3 Testfälle): — (Docstring fehlt)
  • TestGetKennzeichenMenge (3 Testfälle): — (Docstring fehlt)
  • TestErstelle (3 Testfälle): — (Docstring fehlt)
  • TestErgaenzeVerfahrensgebiet (3 Testfälle): — (Docstring fehlt)
  • TestEntferneAusVerfahrensgebiet (5 Testfälle): — (Docstring fehlt)
  • TestErsetze (1 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestPruefeFlurstueckLayer.test_layer_ok_passes Gültiger Polygon-Vektor-Layer mit Pflichtfeldern → ok=True. grün nie geprüft
TestPruefeFlurstueckLayer.test_layer_missing_field_fails Layer ohne Pflichtfelder → ok=False, aktion=felder_fehlen. grün nie geprüft
TestPruefeFlurstueckLayer.test_layer_wrong_geometry_fails Layer mit falschem Geometrietyp → ok=False, aktion=falscher_geotyp. grün nie geprüft
TestPruefeAuswahl.test_no_selection_fails — (Docstring fehlt) grün nie geprüft
TestPruefeAuswahl.test_with_selection_passes — (Docstring fehlt) grün nie geprüft
TestPruefeAuswahl.test_selectedFeatureCount_exception_treated_as_zero — (Docstring fehlt) grün nie geprüft
TestGetKennzeichenMenge.test_returns_set_of_ids Kommagetrennte Kennzeichen im Single-Feature werden korrekt geparst. grün nie geprüft
TestGetKennzeichenMenge.test_empty_layer_returns_empty_set — (Docstring fehlt) grün nie geprüft
TestGetKennzeichenMenge.test_single_kennzeichen_without_comma Einzelnes Kennzeichen ohne Komma wird korrekt erkannt. grün nie geprüft
TestErstelle.test_success_counts 3 gültige Features → erfolgreich=3, fehlgeschlagen=0, 1 Union-Feature im Layer. grün nie geprüft
TestErstelle.test_partial_failure_on_empty_geometry 2 ok + 1 leere Geometrie → erfolgreich=2, fehlgeschlagen=1. grün nie geprüft
TestErstelle.test_all_fail_on_empty_geometries Alle Features haben leere Geometrie → erfolgreich=0, kein Feature im Layer. grün nie geprüft
TestErgaenzeVerfahrensgebiet.test_adds_only_new_ids Auswahl enthält 1 neue + 1 bereits vorhandene ID → hinzugefügt=1. grün nie geprüft
TestErgaenzeVerfahrensgebiet.test_skip_empty_geometry_counts_as_failed Neue ID mit leerer Geometrie → fehlgeschlagen=1, hinzugefügt=0. grün nie geprüft
TestErgaenzeVerfahrensgebiet.test_all_already_present Alle ausgewählten IDs bereits vorhanden → bereits_vorhanden=n, hinzugefügt=0. grün nie geprüft
TestEntferneAusVerfahrensgebiet.test_removes_present_ids Auswahl enthält 1 vorhandene ID → entfernt=1, nicht_enthalten=0. grün nie geprüft
TestEntferneAusVerfahrensgebiet.test_counts_ids_not_in_layer Auswahl enthält ID, die nicht im Verfahrensgebiet ist → nicht_enthalten=1. grün nie geprüft
TestEntferneAusVerfahrensgebiet.test_none_present_in_layer Auswahl hat IDs, die alle nicht im Layer sind → entfernt=0, nicht_enthalten=n. grün nie geprüft
TestEntferneAusVerfahrensgebiet.test_empty_selection_removes_nothing Leere Auswahl → nichts entfernt, nichts nicht_enthalten. grün nie geprüft
TestEntferneAusVerfahrensgebiet.test_removes_last_id_deletes_feature Wird das letzte Kennzeichen entfernt, wird das Feature gelöscht. grün nie geprüft
TestErsetze.test_ersetze_delegates_to_erstelle ersetze_verfahrensgebiet gibt dasselbe Ergebnis wie erstelle zurück. grün nie geprüft

Plugin_SN_Verfahrensgebiet/tests/test_verfahrensgebiet_shape_komplett.py

Worum es in der Datei geht: Unit-Tests für sn_verfahrensgebiet.functions.verfahrensgebiet_shape_komplett.

Testgruppen:

  • TestFindShp (4 Testfälle): — (Docstring fehlt)
  • TestErstelleMemoryLayerAusShp (3 Testfälle): — (Docstring fehlt)
  • TestLadeVgAusZip (6 Testfälle): — (Docstring fehlt)
  • TestVerfahrensgebietShapeKomplett (18 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestFindShp.test_findet_shp_in_root — (Docstring fehlt) grün nie geprüft
TestFindShp.test_findet_shp_in_unterordner — (Docstring fehlt) grün nie geprüft
TestFindShp.test_kein_shp_gibt_none_zurueck — (Docstring fehlt) grün nie geprüft
TestFindShp.test_case_insensitive_erkennung — (Docstring fehlt) grün nie geprüft
TestErstelleMemoryLayerAusShp.test_leere_geometrien_geben_none — (Docstring fehlt) grün nie geprüft
TestErstelleMemoryLayerAusShp.test_keine_features_gibt_none — (Docstring fehlt) grün nie geprüft
TestErstelleMemoryLayerAusShp.test_attribute_von_erstem_feature_werden_gesetzt Attributwerte des ersten Features werden auf das Union-Feature übertragen. grün nie geprüft
TestLadeVgAusZip.test_dialog_abgebrochen_gibt_none_zurueck — (Docstring fehlt) rot (Baseline) nie geprüft
TestLadeVgAusZip.test_zip_fehler_gibt_none_und_warning — (Docstring fehlt) rot (Baseline) nie geprüft
TestLadeVgAusZip.test_kein_shp_in_zip_gibt_none_und_warning — (Docstring fehlt) rot (Baseline) nie geprüft
TestLadeVgAusZip.test_invalider_qgslayer_gibt_none_und_warning — (Docstring fehlt) rot (Baseline) nie geprüft
TestLadeVgAusZip.test_leere_geometrien_geben_none_und_warning — (Docstring fehlt) rot (Baseline) nie geprüft
TestLadeVgAusZip.test_erfolg_gibt_memory_layer_zurueck — (Docstring fehlt) rot (Baseline) nie geprüft
TestVerfahrensgebietShapeKomplett.test_lade_zip_none_aborts — (Docstring fehlt) grün nie geprüft
TestVerfahrensgebietShapeKomplett.test_shape_vg_sofort_ins_projekt_nach_laden Shape-VG wird unmittelbar nach dem Laden ins Projekt eingefügt. rot (Baseline) nie geprüft
TestVerfahrensgebietShapeKomplett.test_shape_vg_wird_bei_abbruch_aus_projekt_entfernt Shape-VG wird bei Fehler/Abbruch aus dem Projekt entfernt. rot (Baseline) nie geprüft
TestVerfahrensgebietShapeKomplett.test_shape_vg_bleibt_im_projekt_bei_erfolg Bei erfolgreichem Abschluss wird shape_vg NICHT aus dem Projekt entfernt. grün nie geprüft
TestVerfahrensgebietShapeKomplett.test_flst_none_aborts — (Docstring fehlt) grün nie geprüft
TestVerfahrensgebietShapeKomplett.test_keine_flurstuecke_selektiert_gibt_warning — (Docstring fehlt) grün nie geprüft
TestVerfahrensgebietShapeKomplett.test_flaechen_uebereinstimmung_gibt_info_und_kein_dialog — (Docstring fehlt) rot (Baseline) nie geprüft
TestVerfahrensgebietShapeKomplett.test_abweichung_abbrechen_gibt_shape_vg_zurueck — (Docstring fehlt) rot (Baseline) nie geprüft
TestVerfahrensgebietShapeKomplett.test_abweichung_detailpruefung_ruft_knickpunkt_pruefung_auf — (Docstring fehlt) rot (Baseline) nie geprüft
TestVerfahrensgebietShapeKomplett.test_punktort_ta_none_gibt_shape_vg_zurueck_und_zeigt_fehler — (Docstring fehlt) rot (Baseline) nie geprüft
TestVerfahrensgebietShapeKomplett.test_temp_layer_wird_stets_entfernt — (Docstring fehlt) grün nie geprüft
TestVerfahrensgebietShapeKomplett.test_bror_layer_ist_stets_none Dritter Rückgabewert ist im Shape-Workflow immer None (kein BROR). grün nie geprüft
TestVerfahrensgebietShapeKomplett.test_bror_geladen_und_zurueckgegeben_wenn_vkz_gesetzt VKZ gesetzt → verfahrensgebiet_alkis aufgerufen, bror_layer zurückgegeben. rot (Baseline) nie geprüft
TestVerfahrensgebietShapeKomplett.test_bror_wird_vor_shape_vg_ins_projekt_eingefuegt BROR wird VOR shape_vg ins Projekt eingefügt (kein Namenskonflikt). rot (Baseline) nie geprüft
TestVerfahrensgebietShapeKomplett.test_bror_wird_bei_abbruch_aus_projekt_entfernt BROR und shape_vg werden bei Fehler aus dem Projekt entfernt. rot (Baseline) nie geprüft
TestVerfahrensgebietShapeKomplett.test_verfahrensgebiet_alkis_nicht_aufgerufen_wenn_vkz_leer Leere VKZ → verfahrensgebiet_alkis wird NICHT aufgerufen. grün nie geprüft
TestVerfahrensgebietShapeKomplett.test_bror_als_erstes_argument_beim_flaechenvergleich Mit BROR: _vergleiche_flaechen wird (bror, shape_vg, ...) aufgerufen. rot (Baseline) nie geprüft
TestVerfahrensgebietShapeKomplett.test_fallback_auf_temp_enriched_wenn_bror_ladeversagen BROR-Ladeversagen → Fallback: _vergleiche_flaechen mit shape_vg vs temp_enriched. rot (Baseline) nie geprüft

Plugin_SN_Verfahrensgebiet/tests/test_working_tab.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestWorkingTab (24 Testfälle): — (Docstring fehlt)
  • TestHandleVerfShape (9 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestWorkingTab.test_set_busy_updates_button_state — (Docstring fehlt) grün nie geprüft
TestWorkingTab.test_on_verf_layer_changed_valid_sets_variable — (Docstring fehlt) grün nie geprüft
TestWorkingTab.test_on_verf_layer_changed_none_clears_variable — (Docstring fehlt) grün nie geprüft
TestWorkingTab.test_handle_verf_alkis_success_path verfahrensgebiet_alkis_komplett → 4-Tupel (enriched, flst, bror, FIRST). rot (Baseline) nie geprüft
TestWorkingTab.test_handle_verf_alkis_failure_clears_layer_var Status NONE → Layer-Variable wird auf '' gesetzt. grün nie geprüft
TestWorkingTab.test_handle_flurst_alkis_first_load_uebernimmt_layer Erstmaliges Laden über 'Flurstücke laden' fügt den Layer dem Projekt hinzu. grün nie geprüft
TestWorkingTab.test_handle_flurst_aus_gemarkungen_ruft_flurstueck_alkis_ohne_schluessel_abfrage Der Gemarkungen-Auswahl-Button ruft dieselbe Ladefunktion mit ohne_schluessel_abfrage=True auf (#47). grün nie geprüft
TestWorkingTab.test_handle_flurst_aus_gemarkungen_abbruch_zeigt_keine_zusaetzliche_meldung Bricht flurstueck_alkis() ab (None, NONE), zeigt der Button keine eigene Meldung – flurstueck_alkis() hat das schon getan (#47). grün nie geprüft
TestWorkingTab.test_handle_grenz_alkis_success_sets_haken Grenzpunkte erfolgreich geladen → haken_grenz wird gesetzt. rot (Baseline) nie geprüft
TestWorkingTab.test_handle_grenz_alkis_none_result_sets_no_haken grenzpunkt_alkis liefert (None, None) → kein Haken. rot (Baseline) nie geprüft
TestWorkingTab.test_handle_flurst_alkis_success_sets_haken_and_style — (Docstring fehlt) grün nie geprüft
TestWorkingTab.test_handle_flurst_alkis_existing_layer_keep_path — (Docstring fehlt) grün nie geprüft
TestWorkingTab.test_handle_flurst_alkis_invalid_input_returns_early Status NONE (z. B. Nutzerabbruch) → kein Layer, kein Haken. grün nie geprüft
TestWorkingTab.test_handle_verfahrensgebiet_from_selection_requires_active_layer Kein aktiver Layer → warning, kein Layer wird erstellt. grün nie geprüft
TestWorkingTab.test_handle_verfahrensgebiet_from_selection_requires_required_fields Layer ohne Pflichtfelder → warning, kein Layer wird erstellt. grün nie geprüft
TestWorkingTab.test_handle_verfahrensgebiet_from_selection_requires_selection Keine Flurstück-Auswahl → warning, kein Layer erstellt. grün nie geprüft
TestWorkingTab.test_handle_verfahrensgebiet_from_selection_new_layer_success Erstlauf ohne bestehenden Layer → Layer wird erstellt und hinzugefügt. grün nie geprüft
TestWorkingTab.test_handle_verfahrensgebiet_from_selection_existing_layer_ergaenzen_dispatch Entscheidung 'ergaenzen' → ergaenze_verfahrensgebiet wird aufgerufen. grün nie geprüft
TestWorkingTab.test_handle_verfahrensgebiet_from_selection_existing_layer_entfernen_dispatch Entscheidung 'entfernen' → entferne_aus_verfahrensgebiet wird aufgerufen. grün nie geprüft
TestWorkingTab.test_handle_verfahrensgebiet_from_selection_existing_layer_ersetzen_dispatch Entscheidung 'ersetzen' → alter Layer entfernt, neuer hinzugefügt. grün nie geprüft
TestWorkingTab.test_aus_liste_button_shows_not_implemented_hint — (Docstring fehlt) grün nie geprüft
TestWorkingTab.test_handle_gem_alkis_service_reachable_adds_layer Dienst erreichbar → Layer ins Projekt, Stil angewendet, Haken gesetzt. grün nie geprüft
TestWorkingTab.test_handle_gem_alkis_service_unreachable_shows_warning Dienst nicht erreichbar (None) → warning, kein addMapLayer. grün nie geprüft
TestWorkingTab.test_handle_gem_alkis_layer_already_exists_shows_info Layer 'Gemarkungen' bereits vorhanden → info, kein erneutes Laden. grün nie geprüft
TestHandleVerfShape.test_status_none_clears_layer_variable Status NONE → Layer-Variable wird auf '' gesetzt. grün nie geprüft
TestHandleVerfShape.test_button_always_re_enabled_on_failure Button muss nach Status NONE wieder freigegeben sein (finally). grün nie geprüft
TestHandleVerfShape.test_verfahrensnummer_nicht_gesetzt_nein_bricht_ab Verfahrensnummer leer + Nutzer wählt 'Nein' → Vorgang abgebrochen. rot (Baseline) nie geprüft
TestHandleVerfShape.test_verfahrensnummer_nicht_gesetzt_ja_fuehrt_fort Verfahrensnummer leer + Nutzer wählt 'Ja' → Pipeline wird aufgerufen. rot (Baseline) nie geprüft
TestHandleVerfShape.test_verfahrensnummer_gesetzt_kein_rueckfrage_dialog Verfahrensnummer gesetzt → kein ask_yes_no-Dialog. grün nie geprüft
TestHandleVerfShape.test_success_path_applies_style_and_sets_haken Erfolg → verfahrensgebiet.qml angewendet, haken_verf gesetzt, success aufgerufen. grün nie geprüft
TestHandleVerfShape.test_bror_layer_erhaelt_qml_stil Wenn bror_layer zurückgegeben → BauRaumOderBodenordnungsrecht.qml angewendet. grün nie geprüft
TestHandleVerfShape.test_enriched_layer_already_in_project_not_added_again Layer bereits im Projekt → kein erneutes addMapLayer für VG-Layer. grün nie geprüft
TestHandleVerfShape.test_busy_state_set_during_execution Button wird während der Ausführung auf busy gesetzt. grün nie geprüft

Paket sn_plan41

Fachplugin, Ordner Plugin_SN_Plan41 – 5 Testdateien mit 44 Testfällen (43 grün, 1 rot, 0 übersprungen).

Plugin_SN_Plan41/tests/test_listenauswerter.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestListenauswerter (4 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestListenauswerter.test_validate_rows_accepts_valid_row_and_normalizes_provider — (Docstring fehlt) grün nie geprüft
TestListenauswerter.test_validate_rows_rejects_missing_required_fields — (Docstring fehlt) grün nie geprüft
TestListenauswerter.test_validate_rows_sets_stildatei_none_on_style_failure — (Docstring fehlt) grün nie geprüft
TestListenauswerter.test_validate_rows_handles_non_mapping_rows_edge_case — (Docstring fehlt) grün nie geprüft

Plugin_SN_Plan41/tests/test_tab_a_logic.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestTabALogic (9 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestTabALogic.test_verfahrens_db_set_and_load_roundtrip — (Docstring fehlt) grün nie geprüft
TestTabALogic.test_verfahrens_db_clear — (Docstring fehlt) grün nie geprüft
TestTabALogic.test_linkliste_set_and_load_existing_path — (Docstring fehlt) grün nie geprüft
TestTabALogic.test_linkliste_load_returns_none_when_file_missing — (Docstring fehlt) grün nie geprüft
TestTabALogic.test_resolve_linkliste_empty_uses_standard_and_persists — (Docstring fehlt) grün nie geprüft
TestTabALogic.test_resolve_linkliste_returns_none_when_pruefmanager_rejects — (Docstring fehlt) grün nie geprüft
TestTabALogic.test_resolve_raumfilter_without_filter_returns_none — (Docstring fehlt) grün nie geprüft
TestTabALogic.test_resolve_raumfilter_verfahrensgebiet_uses_layer_lookup — (Docstring fehlt) grün nie geprüft
TestTabALogic.test_extract_datenabruf_error_maps_merges_reason_maps — (Docstring fehlt) grün nie geprüft

Plugin_SN_Plan41/tests/test_tab_a_preconditions.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestTabAPreconditions (3 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestTabAPreconditions.test_get_verfahrensgebiet_layer_shows_hint_when_layer_id_missing — (Docstring fehlt) grün nie geprüft
TestTabAPreconditions.test_get_verfahrensgebiet_layer_shows_hint_when_layer_not_in_project — (Docstring fehlt) grün nie geprüft
TestTabAPreconditions.test_pipeline_aborts_and_shows_hint_when_verfahrensgebiet_missing — (Docstring fehlt) grün nie geprüft

Plugin_SN_Plan41/tests/test_tab_a_ui.py

Worum es in der Datei geht: — (Docstring fehlt)

Testgruppen:

  • TestTabAUI (3 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestTabAUI.test_tab_a_callbacks_can_be_called_without_crash — (Docstring fehlt) grün nie geprüft
TestTabAUI.test_tab_a_raumfilter_callback_persists_value — (Docstring fehlt) grün nie geprüft
TestTabAUI.test_set_services_initializes_logic_and_injects_data_grabber — (Docstring fehlt) rot (Baseline) nie geprüft

Plugin_SN_Plan41/tests/test_vln_api_logic.py

Worum es in der Datei geht: Tests für sn_plan41/modules/vln_api_logic.py

Testgruppen:

  • TestVlnApiLogicAvailability (2 Testfälle): — (Docstring fehlt)
  • TestVlnApiLogicCredentials (4 Testfälle): — (Docstring fehlt)
  • TestVlnApiLogicLogin (6 Testfälle): — (Docstring fehlt)
  • TestVlnApiLogicVerfahren (2 Testfälle): — (Docstring fehlt)
  • TestVlnApiLogicVkz (4 Testfälle): — (Docstring fehlt)
  • TestVlnApiLogicLoadP41 (3 Testfälle): — (Docstring fehlt)
  • TestVlnApiLogicUpload (4 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
TestVlnApiLogicAvailability.test_is_available_reflects_import_state — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicAvailability.test_is_available_false_when_vln_karten_missing Wenn VLN_KARTEN_AVAILABLE=False, liefert is_available() False. grün nie geprüft
TestVlnApiLogicCredentials.test_save_api_key_calls_qsettings — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicCredentials.test_clear_api_key_calls_remove — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicCredentials.test_load_stored_credentials_returns_api_key_and_mail — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicCredentials.test_load_stored_credentials_returns_none_for_empty — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicLogin.test_login_sets_client_and_saves_key — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicLogin.test_login_raises_runtime_error_without_qgis_modules — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicLogin.test_login_propagates_api_error — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicLogin.test_logout_clears_client — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicLogin.test_is_authenticated_false_after_logout — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicLogin.test_handle_session_expired_clears_key_and_client — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicVerfahren.test_get_verfahren_raises_when_not_authenticated — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicVerfahren.test_get_verfahren_delegates_to_client — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicVkz.test_load_stored_vkz_reads_from_project — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicVkz.test_load_stored_vkz_returns_none_for_empty — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicVkz.test_save_vkz_writes_to_project — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicVkz.test_save_vkz_does_nothing_for_none — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicLoadP41.test_load_p41_raises_without_vln_karten — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicLoadP41.test_load_p41_applies_styles_to_polygon_and_line_layers — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicLoadP41.test_load_p41_no_style_for_point_layer — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicUpload.test_upload_returns_error_for_layer_without_api_path — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicUpload.test_upload_returns_error_for_none_layer — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicUpload.test_upload_returns_false_without_qgis_modules — (Docstring fehlt) grün nie geprüft
TestVlnApiLogicUpload.test_upload_calls_save_feature_collection — (Docstring fehlt) grün nie geprüft

Lücken

Arbeitsliste: Diese Testfälle haben keinen Docstring; was sie fachlich prüfen, lässt sich nur aus dem Quelltext erschließen. Jeder Eintrag braucht eine einzeilige Beschreibung im Testfall, dann verschwindet er hier von selbst.

sn_basis – 0 von 249 Testfällen ohne Beschreibung

Keine Lücken.

sn_verfahrensgebiet – 102 von 208 Testfällen ohne Beschreibung

Plugin_SN_Verfahrensgebiet/tests/test_beteiligung_pruefung.py (25 von 25)

  • TestBaueFlurstueckCsv.test_normalfall_mit_fuehrenden_nullen
  • TestBaueFlurstueckCsv.test_nenner_null_wird_zu_unterstrichen
  • TestBaueFlurstueckCsv.test_nenner_leer_wird_zu_unterstrichen
  • TestBaueFlurstueckCsv.test_gemarkung_ohne_fuehrende_nullen_wird_aufgefuellt
  • TestBaueFlurstueckCsv.test_ungueltiges_format_gibt_none
  • TestBaueFlurstueckCsv.test_leerer_wert_gibt_none
  • TestBaueFlurstueckCsv.test_nenner_9001_wird_zu_buchstabe_a
  • TestBaueFlurstueckCsv.test_nenner_9002_wird_zu_buchstabe_b
  • TestBaueFlurstueckCsv.test_nenner_9026_wird_zu_buchstabe_z
  • TestBaueFlurstueckCsv.test_nenner_ausserhalb_buchstaben_bereich_bleibt_numerisch
  • TestBaueFlurstueckCsv.test_nenner_9001_mit_fuehrenden_nullen_wird_erkannt
  • TestBaueFlurstueckCsv.test_einstellige_folge_wird_auf_2_stellen_aufgefuellt
  • TestBaueFlurstueckCsvListe.test_nur_gueltige_zeilen_in_liste
  • TestHoleVerfahrensgebietLayer.test_layer_per_name_hat_vorrang_vor_combo_auswahl
  • TestHoleVerfahrensgebietLayer.test_combo_auswahl_als_fallback_ohne_namens_layer
  • TestHoleVerfahrensgebietLayer.test_kein_layer_gibt_none
  • TestFordereManuellesLadenAn.test_ohne_vef_vkzf_nennt_fehlende_kennzeichen
  • TestFordereManuellesLadenAn.test_mit_vef_vkzf_nennt_verfahrensnummer
  • TestTry3Bootstrap.test_setzt_verfahrensnummer_und_fordert_manuelles_laden_an
  • TestBeteiligungPruefenDispatch.test_layer_ohne_kennzeichen_fordert_manuelles_laden_an
  • TestBeteiligungPruefenDispatch.test_kein_layer_setzt_verfahrensnummer_und_fordert_laden_an
  • TestLadeBeteiligungCsv.test_dialog_abgebrochen_gibt_none
  • TestLadeBeteiligungCsv.test_fehlende_flurstueck_spalte_wirft_fehler
  • TestLadeBeteiligungCsv.test_leere_datei_wirft_fehler
  • TestLadeBeteiligungCsv.test_erfolgsfall_gibt_zeilen_und_spalten_zurueck

Plugin_SN_Verfahrensgebiet/tests/test_dockwidget.py (2 von 2) – auch der Modul-Docstring fehlt

  • TestDockWidget.test_init_tabs_with_services_injects_available_services
  • TestDockWidget.test_init_tabs_with_services_reports_errors

Plugin_SN_Verfahrensgebiet/tests/test_gemarkung_alkis.py (6 von 14)

  • TestExtractSchluesselUndName.test_standard_attribute
  • TestExtractSchluesselUndName.test_fallback_attribute
  • TestExtractSchluesselUndName.test_missing_attribute_returns_empty
  • TestExtractSchluesselUndName.test_none_value_returns_empty
  • TestGemarkungSchluesselnurNummern.test_returns_only_nummern
  • TestGemarkungSchluesselnurNummern.test_empty_input_returns_empty

Plugin_SN_Verfahrensgebiet/tests/test_grenzpunkt_alkis.py (6 von 13)

  • TestGrenzpunktAlkis.test_no_vg_layer_returns_none
  • TestGrenzpunktAlkis.test_invalid_punktort_layer
  • TestGrenzpunktAlkis.test_empty_punktort_layer
  • TestGrenzpunktAlkis.test_no_gml_ids_returns_pta_only
  • TestGrenzpunktAlkis.test_grenzpunkt_batch_empty
  • TestGrenzpunktAlkis.test_success_returns_both_layers

Plugin_SN_Verfahrensgebiet/tests/test_knickpunkt_pruefung.py (6 von 13)

  • TestExtrahiereKnickpunkte.test_leerer_layer_gibt_leere_liste
  • TestExtrahiereKnickpunkte.test_keine_gueltige_geometrie_gibt_leere_liste
  • TestExtrahiereKnickpunkte.test_feature_mit_leerer_geometrie_gibt_leere_liste
  • TestKnickpunktPruefungInputvalidierung.test_keine_knickpunkte_gibt_none_zurueck
  • TestKnickpunktPruefungInputvalidierung.test_kein_punktort_layer_gibt_none_zurueck
  • TestKnickpunktPruefungInputvalidierung.test_abbruch_via_progress_gibt_none_zurueck

Plugin_SN_Verfahrensgebiet/tests/test_main.py (4 von 4) – auch der Modul-Docstring fehlt

  • TestPluginMain.test_init_sets_services_and_names
  • TestPluginMain.test_initGui_registers_action_when_basis_ui_exists
  • TestPluginMain.test_run_creates_dock_and_marks_toolbar_active
  • TestPluginMain.test_unload_removes_dock_and_action

Plugin_SN_Verfahrensgebiet/tests/test_verfahrensgebiet_alkis.py (4 von 8) – auch der Modul-Docstring fehlt

  • TestVerfahrensgebietAlkis.test_check_existing_layer_first_load
  • TestVerfahrensgebietAlkis.test_check_existing_layer_keep_existing
  • TestVerfahrensgebietAlkis.test_verfahrensgebiet_alkis_fails_when_verfahrensnummer_missing
  • TestVerfahrensgebietAlkis.test_verfahrensgebiet_alkis_fails_on_invalid_wfs_layer

Plugin_SN_Verfahrensgebiet/tests/test_verfahrensgebiet_alkis_komplett.py (19 von 30)

  • TestSelectByLocation.test_processing_not_available_returns_zero
  • TestSelectByLocation.test_processing_success_returns_count
  • TestSelectByLocation.test_processing_exception_returns_zero
  • TestFuegeVkzFeldHinzu.test_empty_vkz_does_nothing
  • TestFuegeVkzFeldHinzu.test_none_vkz_does_nothing
  • TestFuegeVkzFeldHinzu.test_vkz_field_added
  • TestFlaechenvergleich.test_gleiche_flaeche_stimmt_ueberein
  • TestFlaechenvergleich.test_verschiedene_flaeche_stimmt_nicht_ueberein
  • TestFlaechenvergleich.test_differenz_innerhalb_toleranz
  • TestFlaechenvergleich.test_differenz_ausserhalb_toleranz
  • TestFlaechenvergleich.test_flaechen_werte_korrekt
  • TestFlaechenvergleich.test_lese_toleranz_default_ist_null
  • TestFlaechenvergleich.test_lese_toleranz_parst_string
  • TestFlaechenvergleich.test_lese_toleranz_ungueltig_fallback_null
  • TestVerfahrensgebietAlkisKomplett.test_vg_alkis_none_aborts
  • TestVerfahrensgebietAlkisKomplett.test_flst_none_aborts
  • TestVerfahrensgebietAlkisKomplett.test_no_selection_returns_none_enriched
  • TestVerfahrensgebietAlkisKomplett.test_invalid_enriched_layer_returns_none
  • TestVerfahrensgebietAlkisKomplett.test_no_vkz_variable_passes_empty_string

Plugin_SN_Verfahrensgebiet/tests/test_verfahrensgebiet_edit_service.py (4 von 21)

  • TestPruefeAuswahl.test_no_selection_fails
  • TestPruefeAuswahl.test_with_selection_passes
  • TestPruefeAuswahl.test_selectedFeatureCount_exception_treated_as_zero
  • TestGetKennzeichenMenge.test_empty_layer_returns_empty_set

Plugin_SN_Verfahrensgebiet/tests/test_verfahrensgebiet_shape_komplett.py (20 von 31)

  • TestFindShp.test_findet_shp_in_root
  • TestFindShp.test_findet_shp_in_unterordner
  • TestFindShp.test_kein_shp_gibt_none_zurueck
  • TestFindShp.test_case_insensitive_erkennung
  • TestErstelleMemoryLayerAusShp.test_leere_geometrien_geben_none
  • TestErstelleMemoryLayerAusShp.test_keine_features_gibt_none
  • TestLadeVgAusZip.test_dialog_abgebrochen_gibt_none_zurueck
  • TestLadeVgAusZip.test_zip_fehler_gibt_none_und_warning
  • TestLadeVgAusZip.test_kein_shp_in_zip_gibt_none_und_warning
  • TestLadeVgAusZip.test_invalider_qgslayer_gibt_none_und_warning
  • TestLadeVgAusZip.test_leere_geometrien_geben_none_und_warning
  • TestLadeVgAusZip.test_erfolg_gibt_memory_layer_zurueck
  • TestVerfahrensgebietShapeKomplett.test_lade_zip_none_aborts
  • TestVerfahrensgebietShapeKomplett.test_flst_none_aborts
  • TestVerfahrensgebietShapeKomplett.test_keine_flurstuecke_selektiert_gibt_warning
  • TestVerfahrensgebietShapeKomplett.test_flaechen_uebereinstimmung_gibt_info_und_kein_dialog
  • TestVerfahrensgebietShapeKomplett.test_abweichung_abbrechen_gibt_shape_vg_zurueck
  • TestVerfahrensgebietShapeKomplett.test_abweichung_detailpruefung_ruft_knickpunkt_pruefung_auf
  • TestVerfahrensgebietShapeKomplett.test_punktort_ta_none_gibt_shape_vg_zurueck_und_zeigt_fehler
  • TestVerfahrensgebietShapeKomplett.test_temp_layer_wird_stets_entfernt

Plugin_SN_Verfahrensgebiet/tests/test_working_tab.py (6 von 33) – auch der Modul-Docstring fehlt

  • TestWorkingTab.test_set_busy_updates_button_state
  • TestWorkingTab.test_on_verf_layer_changed_valid_sets_variable
  • TestWorkingTab.test_on_verf_layer_changed_none_clears_variable
  • TestWorkingTab.test_handle_flurst_alkis_success_sets_haken_and_style
  • TestWorkingTab.test_handle_flurst_alkis_existing_layer_keep_path
  • TestWorkingTab.test_aus_liste_button_shows_not_implemented_hint

sn_plan41 – 43 von 44 Testfällen ohne Beschreibung

Plugin_SN_Plan41/tests/test_listenauswerter.py (4 von 4) – auch der Modul-Docstring fehlt

  • TestListenauswerter.test_validate_rows_accepts_valid_row_and_normalizes_provider
  • TestListenauswerter.test_validate_rows_rejects_missing_required_fields
  • TestListenauswerter.test_validate_rows_sets_stildatei_none_on_style_failure
  • TestListenauswerter.test_validate_rows_handles_non_mapping_rows_edge_case

Plugin_SN_Plan41/tests/test_tab_a_logic.py (9 von 9) – auch der Modul-Docstring fehlt

  • TestTabALogic.test_verfahrens_db_set_and_load_roundtrip
  • TestTabALogic.test_verfahrens_db_clear
  • TestTabALogic.test_linkliste_set_and_load_existing_path
  • TestTabALogic.test_linkliste_load_returns_none_when_file_missing
  • TestTabALogic.test_resolve_linkliste_empty_uses_standard_and_persists
  • TestTabALogic.test_resolve_linkliste_returns_none_when_pruefmanager_rejects
  • TestTabALogic.test_resolve_raumfilter_without_filter_returns_none
  • TestTabALogic.test_resolve_raumfilter_verfahrensgebiet_uses_layer_lookup
  • TestTabALogic.test_extract_datenabruf_error_maps_merges_reason_maps

Plugin_SN_Plan41/tests/test_tab_a_preconditions.py (3 von 3) – auch der Modul-Docstring fehlt

  • TestTabAPreconditions.test_get_verfahrensgebiet_layer_shows_hint_when_layer_id_missing
  • TestTabAPreconditions.test_get_verfahrensgebiet_layer_shows_hint_when_layer_not_in_project
  • TestTabAPreconditions.test_pipeline_aborts_and_shows_hint_when_verfahrensgebiet_missing

Plugin_SN_Plan41/tests/test_tab_a_ui.py (3 von 3) – auch der Modul-Docstring fehlt

  • TestTabAUI.test_tab_a_callbacks_can_be_called_without_crash
  • TestTabAUI.test_tab_a_raumfilter_callback_persists_value
  • TestTabAUI.test_set_services_initializes_logic_and_injects_data_grabber

Plugin_SN_Plan41/tests/test_vln_api_logic.py (24 von 25)

  • TestVlnApiLogicAvailability.test_is_available_reflects_import_state
  • TestVlnApiLogicCredentials.test_save_api_key_calls_qsettings
  • TestVlnApiLogicCredentials.test_clear_api_key_calls_remove
  • TestVlnApiLogicCredentials.test_load_stored_credentials_returns_api_key_and_mail
  • TestVlnApiLogicCredentials.test_load_stored_credentials_returns_none_for_empty
  • TestVlnApiLogicLogin.test_login_sets_client_and_saves_key
  • TestVlnApiLogicLogin.test_login_raises_runtime_error_without_qgis_modules
  • TestVlnApiLogicLogin.test_login_propagates_api_error
  • TestVlnApiLogicLogin.test_logout_clears_client
  • TestVlnApiLogicLogin.test_is_authenticated_false_after_logout
  • TestVlnApiLogicLogin.test_handle_session_expired_clears_key_and_client
  • TestVlnApiLogicVerfahren.test_get_verfahren_raises_when_not_authenticated
  • TestVlnApiLogicVerfahren.test_get_verfahren_delegates_to_client
  • TestVlnApiLogicVkz.test_load_stored_vkz_reads_from_project
  • TestVlnApiLogicVkz.test_load_stored_vkz_returns_none_for_empty
  • TestVlnApiLogicVkz.test_save_vkz_writes_to_project
  • TestVlnApiLogicVkz.test_save_vkz_does_nothing_for_none
  • TestVlnApiLogicLoadP41.test_load_p41_raises_without_vln_karten
  • TestVlnApiLogicLoadP41.test_load_p41_applies_styles_to_polygon_and_line_layers
  • TestVlnApiLogicLoadP41.test_load_p41_no_style_for_point_layer
  • TestVlnApiLogicUpload.test_upload_returns_error_for_layer_without_api_path
  • TestVlnApiLogicUpload.test_upload_returns_error_for_none_layer
  • TestVlnApiLogicUpload.test_upload_returns_false_without_qgis_modules
  • TestVlnApiLogicUpload.test_upload_calls_save_feature_collection

Ungetestete Funktionen (strukturelle Lücke)

Heuristik, kein Beweis: Diese Funktionen und Methoden kommen unter ihrem Namen in keiner Testdatei des Pakets vor. Das schließt nicht aus, dass sie indirekt über eine andere, getestete Funktion mitlaufen – umgekehrt gilt: Taucht der Name irgendwo in einer Testdatei auf, gilt die Funktion schon als referenziert, auch bei zufälliger Namensgleichheit mit etwas anderem. main.py/__init__.py (QGIS-Einstiegspunkte wie classFactory, initGui, unload) und Dunder-Methoden sind ausgenommen. Diese Liste ersetzt keine fachliche Prüfung, ob ein Test sinnvoll wäre – dafür braucht es einen Menschen, der die Funktion kennt.

sn_basis – 115 von 229 (50 %) ohne Testbezug

functions/dialog_wrapper.py (9)

  • show_info_dialog (Zeile 42)
  • ask_detailpruefung_oder_vg_laden (Zeile 185)
  • ask_detailpruefung_oder_abbrechen (Zeile 235)
  • ProgressDialog.set_total (Zeile 328)
  • ProgressDialog.set_value (Zeile 336)
  • ProgressDialog.set_label (Zeile 348)
  • ProgressDialog.is_canceled (Zeile 357)
  • ProgressDialog.raise_to_front (Zeile 373)
  • create_progress_dialog (Zeile 390)

functions/message_wrapper.py (2)

  • info (Zeile 67)
  • success (Zeile 82)

functions/os_wrapper.py (6)

  • normalize_path (Zeile 43)
  • get_home_dir (Zeile 53)
  • is_absolute_path (Zeile 60)
  • basename (Zeile 68)
  • is_case_sensitive_fs (Zeile 80)
  • path_suffix (Zeile 96)

functions/qgisui_wrapper.py (5)

  • get_main_window (Zeile 131)
  • add_menu (Zeile 178)
  • remove_menu (Zeile 188)
  • add_toolbar (Zeile 201)
  • remove_toolbar (Zeile 208)

functions/qt_wrapper.py (2)

  • exec_dialog (Zeile 60)
  • debug_qt_status (Zeile 64)

modules/DataGrabber.py (4)

  • DataGrabber.set_source (Zeile 68)
  • DataGrabber._process_database_source (Zeile 309)
  • DataGrabber._process_service_source (Zeile 320)
  • DataGrabber._aggregate_results (Zeile 330)

modules/Dateipruefer.py (2)

  • Dateipruefer._ist_leer (Zeile 98)
  • Dateipruefer._handle_leere_eingabe (Zeile 227)

modules/Datenschreiber.py (1)

  • Datenschreiber._store_style_in_gpkg (Zeile 77)

modules/LayerLoader.py (2)

  • LayerLoader._was_canceled (Zeile 42)
  • LayerLoader._process_events (Zeile 50)

modules/linkpruefer.py (3)

  • Linkpruefer._ist_url (Zeile 41)
  • Linkpruefer._pruefe_url (Zeile 81)
  • Linkpruefer._pruefe_dateipfad (Zeile 115)

modules/print_layout.py (11)

  • PrintLayout._create_map_item (Zeile 98)
  • PrintLayout._set_item_frame_stroke_width (Zeile 119)
  • PrintLayout._fit_extent_to_map_item (Zeile 154)
  • PrintLayout.add_text_label (Zeile 211)
  • PrintLayout._setup_layout_objects (Zeile 242)
  • PrintLayout._create_label_item (Zeile 373)
  • PrintLayout._resolve_visible_map_layers (Zeile 470)
  • PrintLayout._apply_grid_common_settings (Zeile 791)
  • PrintLayout._safe_grid_call (Zeile 797)
  • PrintLayout._apply_grid_annotation_text_style (Zeile 808)
  • PrintLayout._create_rectangle_box_item (Zeile 908)

modules/print_layout_baufreigabe.py (3)

  • PrintLayoutBaufreigabe.create_baufreigabe_layout (Zeile 90)
  • PrintLayoutBaufreigabe._setup_layout_objects_baufreigabe (Zeile 262)
  • PrintLayoutBaufreigabe._calc_atlas_margin_percent (Zeile 394)

modules/print_logic.py (27)

  • PrintLogic._failed_result (Zeile 123)
  • PrintLogic._show_target_size_too_small (Zeile 126)
  • PrintLogic._is_enabled_flag (Zeile 133)
  • PrintLogic._resolve_layer_from_project (Zeile 138)
  • PrintLogic._resolve_active_layer (Zeile 158)
  • PrintLogic._get_druckpuffer_cm (Zeile 167)
  • PrintLogic._get_druckpuffer_m (Zeile 175)
  • PrintLogic._import_qgis_symbol (Zeile 178)
  • PrintLogic._build_rectangle (Zeile 185)
  • PrintLogic._clone_extent (Zeile 194)
  • PrintLogic._get_existing_layer_by_name (Zeile 260)
  • PrintLogic._create_druckrechteck_layer (Zeile 273)
  • PrintLogic._clear_layer_features (Zeile 301)
  • PrintLogic.create_atlas_layer_from_selection (Zeile 325)
  • PrintLogic.configure_atlas_for_baufreigabe_layout (Zeile 468)
  • PrintLogic._store_druckrechteck (Zeile 614)
  • PrintLogic.activate_druckrechteck_capture (Zeile 662)
  • PrintLogic._resolve_selection_layer (Zeile 792)
  • PrintLogic._get_selected_extent (Zeile 805)
  • PrintLogic.set_kartenname_for_auswahl (Zeile 961)
  • PrintLogic.set_plotmassstab_for_auswahl (Zeile 965)
  • PrintLogic.set_view_for_auswahl (Zeile 976)
  • PrintLogic.set_zielgroesse_for_auswahl (Zeile 982)
  • PrintLogic.set_formfaktor (Zeile 985)
  • PrintLogic._get_plot_dimensions_mm (Zeile 1052)
  • PrintLogic._get_required_map_dimensions_mm (Zeile 1061)
  • PrintLogic.druckvorlage_anlegen (Zeile 1161)

modules/pruef_ergebnis.py (1)

  • pruef_ergebnis.dateipfad (Zeile 167)

modules/Pruefmanager.py (5)

  • Pruefmanager.report_summary (Zeile 45)
  • Pruefmanager.zeige_hinweis (Zeile 62)
  • Pruefmanager._handle_datei_existiert (Zeile 83)
  • Pruefmanager._handle_verfahrensgebiet_layer_existiert (Zeile 230)
  • Pruefmanager._ask_use_or_replace_pufferlayer (Zeile 273)

ui/navigation.py (6)

  • Navigation.init_ui (Zeile 33)
  • Navigation.add_action (Zeile 68)
  • Navigation.finalize_menu_and_toolbar (Zeile 81)
  • Navigation.set_active_plugin (Zeile 94)
  • Navigation.remove_action (Zeile 104)
  • Navigation.remove_all (Zeile 115)

ui/tabs/print_tab.py (25)

  • PrintTab.set_services (Zeile 94)
  • PrintTab._build_ui (Zeile 115)
  • PrintTab._restore_state (Zeile 267)
  • PrintTab._on_kartenname_changed (Zeile 334)
  • PrintTab._on_massstab_changed (Zeile 347)
  • PrintTab._on_thema_changed (Zeile 352)
  • PrintTab._on_zielgroesse_changed (Zeile 357)
  • PrintTab._on_formfaktor_changed (Zeile 362)
  • PrintTab._on_druckbereich_changed (Zeile 368)
  • PrintTab._on_atlas_erzeugen_changed (Zeile 377)
  • PrintTab._on_druckpuffer_clicked (Zeile 392)
  • PrintTab._format_druckpuffer_label (Zeile 425)
  • PrintTab._on_vorlage_erstellen (Zeile 428)
  • PrintTab._disconnect_project_signals (Zeile 441)
  • PrintTab._connect_project_signals (Zeile 464)
  • PrintTab._toggle_atlas (Zeile 489)
  • PrintTab._restore_atlas_layer_selection (Zeile 495)
  • PrintTab._disconnect_theme_collection_signals (Zeile 519)
  • PrintTab._connect_theme_collection_signals (Zeile 538)
  • PrintTab._refresh_thema_combo_live (Zeile 565)
  • PrintTab._get_gespeicherte_themen (Zeile 585)
  • PrintTab._get_current_canvas_scale (Zeile 602)
  • PrintTab._on_atlas_layer_changed (Zeile 612)
  • PrintTab._on_auswahl_as_atlas_clicked (Zeile 641)
  • PrintTab._populate_atlas_layer_combo (Zeile 679)

ui/tabs/settings_tab.py (1)

  • SettingsTab._build_input (Zeile 118)

sn_verfahrensgebiet – 34 von 104 (33 %) ohne Testbezug

functions/beteiligung_pruefung.py (5)

  • _baue_nenner_kennzeichen (Zeile 139)
  • _hole_flurstuecke_layer (Zeile 253)
  • _flurstueckskennzeichen_geometrien (Zeile 258)
  • _try1_listenabgleich (Zeile 279)
  • _lese_vef_vkzf (Zeile 380)

functions/flurstueck_alkis.py (1)

  • _vorhandene_kennzeichen (Zeile 80)

functions/gemarkung_alkis.py (1)

  • gemarkung_schluessel_von_vg_geometrie (Zeile 212)

functions/grenzpunkt_alkis.py (4)

  • _punktort_ta_bbox_param (Zeile 115)
  • _hat_geometrie (Zeile 573)
  • _lade_gemarkung_extents_mit_puffer (Zeile 637)
  • _lade_punktort_ta_batches_per_gemarkung (Zeile 784)

functions/knickpunkt_pruefung.py (2)

  • _setze_kategorien_symbologie (Zeile 158)
  • erstelle_korrigiertes_polygon (Zeile 604)

functions/umringspruefung.py (3)

  • _zerlege_in_teile (Zeile 55)
  • _setze_kategorien_symbologie (Zeile 112)
  • umringspruefung (Zeile 152)

functions/umringstatistik_grenzpunkte.py (3)

  • _setze_kategorien_symbologie (Zeile 74)
  • _klassifiziere (Zeile 119)
  • umringstatistik_grenzpunkte (Zeile 164)

functions/verfahrensgebiet_alkis.py (1)

  • _baue_layer_aus_kombinationen (Zeile 144)

functions/verfahrensgebiet_alkis_komplett.py (2)

  • _entferne_hilfs_layer (Zeile 100)
  • _flaeche_des_layers (Zeile 210)

functions/verfahrensgebiet_dialoge.py (1)

  • ask_landkreis_objekte (Zeile 101)

functions/verfahrensgebiet_shape_komplett.py (6)

  • _normalisiere_feldname (Zeile 110)
  • _finde_fbschl_index (Zeile 132)
  • _ermittle_gebietstyp_aus_fbschl (Zeile 161)
  • _wende_vergleich_stil_an (Zeile 211)
  • _erstelle_vergleich_layer (Zeile 251)
  • _finde_alle_shp (Zeile 342)

ui/tabs/working_tab.py (5)

  • WorkingTab.handle_beteiligung_pruefen (Zeile 297)
  • WorkingTab._haken_label (Zeile 349)
  • WorkingTab._restore_verf_layer_selection (Zeile 374)
  • WorkingTab._uebernimm_flurstuecke_ergebnis (Zeile 390)
  • WorkingTab.handle_umringstatistik (Zeile 777)

sn_plan41 – 39 von 80 (49 %) ohne Testbezug

modules/vln_api_client.py (3)

  • KartenApiClient.load_feature_collection (Zeile 154)
  • KartenApiClient._request (Zeile 176)
  • KartenApiClient._error_detail (Zeile 235)

modules/vln_api_logic.py (4)

  • VlnApiLogic.get_p41_layers (Zeile 233)
  • VlnApiLogic.remove_p41_layers (Zeile 237)
  • VlnApiLogic._apply_p41_styles (Zeile 277)
  • VlnApiLogic.upload_summary (Zeile 347)

modules/vln_layer_manager.py (2)

  • _family (Zeile 58)
  • memory_layer_from_features (Zeile 73)

ui/dockwidget.py (1)

  • DockWidget._init_tabs_with_services (Zeile 42)

ui/tab_a_logic.py (15)

  • TabALogic._log (Zeile 90)
  • TabALogic._create_silent_pruefmanager (Zeile 93)
  • TabALogic._zeige_verfahrensgebiet_hinweis (Zeile 127)
  • TabALogic._close_progress_dialog (Zeile 139)
  • TabALogic.write_layer_to_verfahrens_db (Zeile 169)
  • TabALogic.is_valid_verfahrensgebiet_layer (Zeile 242)
  • TabALogic._load_dienste_aus_result_dict (Zeile 391)
  • TabALogic._create_local_layer_from_fetched_features (Zeile 639)
  • TabALogic._write_html_log (Zeile 779)
  • TabALogic._clone_layer_with_extent (Zeile 934)
  • TabALogic._handle_pufferlayer (Zeile 1062)
  • TabALogic._load_existing_pufferlayer (Zeile 1084)
  • TabALogic._create_pufferlayer (Zeile 1092)
  • TabALogic._pufferlayer_exists_in_source (Zeile 1119)
  • TabALogic.Pufferlayer_erstellen (Zeile 1133)

ui/tab_a_ui.py (14)

  • TabA._build_ui (Zeile 113)
  • TabA._restore_state (Zeile 274)
  • TabA._restore_vln_state (Zeile 296)
  • TabA._toggle_vln_group (Zeile 307)
  • TabA._update_vln_ui_state (Zeile 311)
  • TabA._populate_verfahren_combo (Zeile 347)
  • TabA._on_vln_login (Zeile 374)
  • TabA._on_vln_logout (Zeile 405)
  • TabA._on_vln_verfahren_changed (Zeile 416)
  • TabA._on_p41_laden (Zeile 424)
  • TabA._on_upload_active (Zeile 498)
  • TabA._create_new_gpkg (Zeile 595)
  • TabA._update_group_color (Zeile 608)
  • TabA._on_load_fachdaten (Zeile 618)