Files
Projektwissen/docs/tests/testkatalog.md
T
DanielandClaude Sonnet 5 cd11e409a3 Prüfstand: Statistik-Kacheln je Paket, beabsichtigt/ungeklärt-Indikator
Jedes Paket zeigt jetzt dieselben Kennzahl-Kacheln wie die Gesamtübersicht
(Testdateien, Testfälle, grün/rot/übersprungen, mit Docstring, geprüft,
ohne Testbezug) statt eines Fließtexts.

Ungetestete Funktionen werden per Docstring-Auswertung als "beabsichtigt"
(Vermerk "von Test abgesehen, weil …" oder "Test ausgesetzt, zunächst
Refactor") oder "ungeklärt" markiert - in Markdown als Anmerkung je
Funktion, im Prüfstand als Pille mit Tooltip (Begründung).

Der Abschnitt "Ungetestete Funktionen" ist im Prüfstand jetzt eine
ausklappbare Karte wie eine Testdatei, mit eigener Kennzahl-Übersicht
(Anzahl, ungeklärt, beabsichtigt) im Kopf - bewusst von den Filter-Chips
ausgenommen (.gapcard), da diese sich auf Testfall-Status beziehen, nicht
auf Quellcode-Funktionen.

Neue Funktion absichtlicher_verzicht() plus 6 neue Tests in
scripts/tests/test_testkatalog_quellfunktionen.py.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 13:26:01 +02:00

144 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, 49 Testdateien, 569 Testfälle – 526 grün, 35 rot (Baseline), 8 übersprungen. Mit Beschreibung (Docstring): 424 von 569 (75 %). Fachlich geprüft: 55 von 569 (10 %) aktuell, 0 veraltet seit Codeänderung, 514 nie geprüft. Strukturelle Lücken (heuristisch, Namensabgleich): 149 von 413 (36 %) Funktionen/Methoden ohne erkennbaren Testbezug – Abschnitt „Ungetestete Funktionen“.

Zusammenfassung

Paket Testdateien Testfälle grün rot (Baseline) übersprungen mit Beschreibung fachlich geprüft ohne Testbezug
sn_basis 32 317 317 0 0 317 von 317 (100 %) 55 von 317 (17 %) 76 von 229 (33 %)
sn_verfahrensgebiet 12 208 166 34 8 106 von 208 (51 %) 0 von 208 (0 %) 34 von 104 (33 %)
sn_plan41 5 44 43 1 0 1 von 44 (2 %) 0 von 44 (0 %) 39 von 80 (49 %)
Summe 49 569 526 35 8 424 von 569 (75 %) 55 von 569 (10 %) 149 von 413 (36 %)

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. Davon beabsichtigt – der Docstring dokumentiert den Testverzicht; ungeklärt – weder Test noch Vermerk, die eigentliche Arbeitsliste.

Paket sn_basis

Plattform-Plugin, Ordner Plugin_SN_Basis – 32 Testdateien mit 317 Testfällen (317 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 (8 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
TestDataGrabber.test_aggregate_results_mit_zeilen_liefert_erfolgsergebnis Prüft, dass _aggregate_results bei vorhandenen Zeilen ein Erfolgsergebnis mit Zeilenzahl liefert. grün nie geprüft
TestDataGrabber.test_aggregate_results_ohne_zeilen_liefert_keine_validen_eintraege Prüft, dass _aggregate_results ohne Zeilen ok=False mit Aktion 'keine_validen_eintraege' liefert. grün nie geprüft

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_navigation.py

Worum es in der Datei geht: Tests für sn_basis/ui/navigation.py::Navigation (Issue #67, ohne init_ui – s. Docstring dort).

Testgruppen:

  • AddActionTests (2 Testfälle): — (Docstring fehlt)
  • FinalizeMenuAndToolbarTests (2 Testfälle): — (Docstring fehlt)
  • SetActivePluginTests (2 Testfälle): — (Docstring fehlt)
  • RemoveActionTests (3 Testfälle): — (Docstring fehlt)
  • RemoveAllTests (2 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
AddActionTests.test_ohne_plugin_group_liefert_none Prüft, dass add_action ohne initialisierte Aktionsgruppe None liefert und nichts anlegt. grün nie geprüft
AddActionTests.test_erzeugt_action_und_fuegt_sie_gruppe_und_liste_hinzu Prüft, dass add_action eine Action erzeugt, ihr die Gruppe zuweist und sie priorisiert in der Liste ablegt. grün nie geprüft
FinalizeMenuAndToolbarTests.test_ohne_menu_oder_toolbar_tut_nichts Prüft, dass finalize_menu_and_toolbar ohne Menü oder Toolbar keine Ausnahme wirft. grün nie geprüft
FinalizeMenuAndToolbarTests.test_sortiert_und_fuegt_aktionen_in_prioritaetsreihenfolge_hinzu Prüft, dass finalize_menu_and_toolbar Aktionen nach Priorität sortiert in Menü und Toolbar einträgt. grün nie geprüft
SetActivePluginTests.test_setzt_nur_aktive_action_auf_checked Prüft, dass set_active_plugin nur die übergebene Action markiert, alle anderen abwählt. grün nie geprüft
SetActivePluginTests.test_ohne_aktive_action_setzt_alle_auf_false Prüft, dass set_active_plugin ohne aktive Action alle bestehenden Actions abwählt. grün nie geprüft
RemoveActionTests.test_none_action_tut_nichts Prüft, dass remove_action mit None keine Ausnahme wirft und die Liste unverändert lässt. grün nie geprüft
RemoveActionTests.test_entfernt_action_aus_menu_toolbar_und_liste Prüft, dass remove_action die Action aus Menü, Toolbar und der internen Liste entfernt. grün nie geprüft
RemoveActionTests.test_ohne_menu_oder_toolbar_entfernt_trotzdem_aus_liste Prüft, dass remove_action ohne Menü/Toolbar trotzdem aus der internen Liste entfernt. grün nie geprüft
RemoveAllTests.test_entfernt_menu_toolbar_und_setzt_zustand_zurueck Prüft, dass remove_all Menü und Toolbar über die Wrapper entfernt und den Navigationszustand zurücksetzt. grün nie geprüft
RemoveAllTests.test_ohne_menu_und_toolbar_ruft_wrapper_nicht_auf Prüft, dass remove_all ohne vorhandenes Menü/Toolbar die Wrapper nicht aufruft, aber die Liste leert. grün nie geprüft

Plugin_SN_Basis/tests/test_os_wrapper.py

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

Testgruppen:

  • IsCaseSensitiveFsTests (3 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
IsCaseSensitiveFsTests.test_windows_ist_nicht_case_sensitiv Prüft, dass Windows als nicht case-sensitives Dateisystem gilt. grün nie geprüft
IsCaseSensitiveFsTests.test_macos_ist_nicht_case_sensitiv Prüft, dass macOS als nicht case-sensitives Dateisystem gilt. grün nie geprüft
IsCaseSensitiveFsTests.test_linux_ist_case_sensitiv Prüft, dass Linux als case-sensitives Dateisystem gilt. 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_print_tab.py

Worum es in der Datei geht: Tests für sn_basis/ui/tabs/print_tab.py::PrintTab (Issue #67).

Testgruppen:

  • SetServicesTests (2 Testfälle): — (Docstring fehlt)
  • RestoreStateTests (2 Testfälle): — (Docstring fehlt)
  • OnDruckpufferClickedTests (3 Testfälle): — (Docstring fehlt)
  • OnVorlageErstellenTests (2 Testfälle): — (Docstring fehlt)
  • ProjectSignalsTests (3 Testfälle): — (Docstring fehlt)
  • CleanupTests (1 Testfälle): — (Docstring fehlt)
  • ToggleAtlasTests (2 Testfälle): — (Docstring fehlt)
  • RestoreAtlasLayerSelectionTests (2 Testfälle): — (Docstring fehlt)
  • ThemeCollectionSignalsTests (3 Testfälle): — (Docstring fehlt)
  • RefreshThemaComboLiveTests (2 Testfälle): — (Docstring fehlt)
  • GetGespeicherteThemenTests (2 Testfälle): — (Docstring fehlt)
  • GetCurrentCanvasScaleTests (3 Testfälle): — (Docstring fehlt)
  • OnAtlasLayerChangedTests (3 Testfälle): — (Docstring fehlt)
  • OnAuswahlAsAtlasClickedTests (2 Testfälle): — (Docstring fehlt)
  • PopulateAtlasLayerComboTests (2 Testfälle): — (Docstring fehlt)
  • OnAtlasErzeugenChangedTests (3 Testfälle): — (Docstring fehlt)
Testfall prüft Status geprüft
SetServicesTests.test_ruft_alle_set_methoden_mit_combo_werten_auf Prüft, dass set_services alle set_*-Methoden von PrintLogic mit den aktuellen Combo-Werten aufruft. grün nie geprüft
SetServicesTests.test_ohne_combos_ruft_keine_set_methode_auf Prüft, dass set_services ohne vorhandene Combos keine set_*-Methode von PrintLogic aufruft. grün nie geprüft
RestoreStateTests.test_gueltige_gespeicherte_werte_werden_uebernommen Prüft, dass _restore_state gültige gespeicherte Werte in die jeweiligen Widgets übernimmt. grün nie geprüft
RestoreStateTests.test_ungueltige_oder_fehlende_werte_fallen_auf_defaults_zurueck Prüft, dass _restore_state ohne (gültige) gespeicherte Werte auf die Default-Konstanten zurückfällt. grün nie geprüft
OnDruckpufferClickedTests.test_gueltige_zahl_setzt_variable_und_button_text Prüft, dass eine bestätigte, gültige Zahl den Druckpuffer speichert und den Button-Text aktualisiert. grün nie geprüft
OnDruckpufferClickedTests.test_abgebrochen_aendert_nichts Prüft, dass ein abgebrochener Dialog den Druckpuffer nicht verändert. grün nie geprüft
OnDruckpufferClickedTests.test_ungueltige_zahl_zeigt_hinweis_und_setzt_nichts Prüft, dass eine nicht-numerische Eingabe einen Hinweis zeigt und den Druckpuffer nicht setzt. grün nie geprüft
OnVorlageErstellenTests.test_ruft_druckvorlage_anlegen_mit_combo_werten_auf Prüft, dass _on_vorlage_erstellen druckvorlage_anlegen mit den aktuellen Combo-Werten aufruft. grün nie geprüft
OnVorlageErstellenTests.test_ohne_logic_tut_nichts Prüft, dass _on_vorlage_erstellen ohne gesetzte PrintLogic keine Ausnahme wirft. grün nie geprüft
ProjectSignalsTests.test_connect_verbindet_alle_drei_signale Prüft, dass _connect_project_signals alle drei Projektsignale mit _on_project_changed verbindet. grün nie geprüft
ProjectSignalsTests.test_disconnect_trennt_alle_drei_signale Prüft, dass _disconnect_project_signals alle drei zuvor verbundenen Projektsignale trennt. grün nie geprüft
ProjectSignalsTests.test_instance_wirft_ausnahme_wird_abgefangen Prüft, dass eine Ausnahme bei QgsProject.instance() in beiden Signalmethoden abgefangen wird. grün nie geprüft
CleanupTests.test_ruft_beide_disconnect_methoden_auf Prüft, dass cleanup sowohl die Theme- als auch die Projektsignale trennt. grün nie geprüft
ToggleAtlasTests.test_checked_true_setzt_arrow_down_und_zeigt_inhalt Prüft, dass _toggle_atlas bei checked=True den Pfeil nach unten dreht und den Inhalt einblendet. grün nie geprüft
ToggleAtlasTests.test_checked_false_setzt_arrow_right_und_versteckt_inhalt Prüft, dass _toggle_atlas bei checked=False den Pfeil nach rechts dreht und den Inhalt ausblendet. grün nie geprüft
RestoreAtlasLayerSelectionTests.test_vorhandene_layer_id_setzt_layer_in_combo Prüft, dass eine gespeicherte Layer-ID den zugehörigen Layer im Atlas-Dropdown auswählt. grün nie geprüft
RestoreAtlasLayerSelectionTests.test_leere_gespeicherte_layer_id_tut_nichts Prüft, dass eine leere gespeicherte Layer-ID das Projekt gar nicht erst anfragt. grün nie geprüft
ThemeCollectionSignalsTests.test_connect_verbindet_alle_signale Prüft, dass _connect_theme_collection_signals alle Signale der Theme-Collection verbindet. grün nie geprüft
ThemeCollectionSignalsTests.test_connect_ist_idempotent_wenn_schon_verbunden Prüft, dass _connect_theme_collection_signals bei bereits verbundenem Signal nichts erneut tut. grün nie geprüft
ThemeCollectionSignalsTests.test_disconnect_trennt_alle_signale Prüft, dass _disconnect_theme_collection_signals alle verbundenen Theme-Signale trennt und zurücksetzt. grün nie geprüft
RefreshThemaComboLiveTests.test_erhaelt_vorherige_auswahl_wenn_noch_vorhanden Prüft, dass _refresh_thema_combo_live die vorherige Auswahl beibehält, wenn sie noch existiert. grün nie geprüft
RefreshThemaComboLiveTests.test_faellt_auf_wie_kartenfenster_zurueck_wenn_auswahl_verschwunden Prüft, dass _refresh_thema_combo_live auf 'wie Kartenfenster' zurückfällt, wenn die Auswahl verschwunden ist. grün nie geprüft
GetGespeicherteThemenTests.test_dedupliziert_und_filtert_leere_eintraege Prüft, dass _get_gespeicherte_themen Duplikate und leere/None-Einträge entfernt. grün nie geprüft
GetGespeicherteThemenTests.test_fehler_liefert_leere_liste Prüft, dass ein Fehler beim Zugriff auf die Theme-Collection eine leere Liste liefert. grün nie geprüft
GetCurrentCanvasScaleTests.test_liefert_skalierung_als_float Prüft, dass _get_current_canvas_scale die Canvas-Skalierung als float liefert. grün nie geprüft
GetCurrentCanvasScaleTests.test_ohne_canvas_liefert_none Prüft, dass _get_current_canvas_scale ohne verfügbares Kartenfenster None liefert. grün nie geprüft
GetCurrentCanvasScaleTests.test_skalierung_null_liefert_none Prüft, dass eine Skalierung von 0 als None statt als 0.0 gilt. grün nie geprüft
OnAtlasLayerChangedTests.test_none_oder_leer_setzt_variable_leer Prüft, dass None oder ein leerer Wert die Abdeckungslayer-Variable leeren. grün nie geprüft
OnAtlasLayerChangedTests.test_layer_objekt_mit_id_methode_setzt_dessen_id Prüft, dass ein echtes Layer-Objekt (mit id()-Methode) dessen ID speichert. grün nie geprüft
OnAtlasLayerChangedTests.test_string_fallback_sucht_layer_ueber_namen Prüft, dass ohne id()-Methode über den Layernamen im Projekt gesucht und dessen ID gespeichert wird. grün nie geprüft
OnAuswahlAsAtlasClickedTests.test_erfolgreicher_layer_aktualisiert_atlas_ui Prüft, dass ein erfolgreich erzeugter Atlas-Layer den Atlas-Bereich öffnet und ins Dropdown übernimmt. grün nie geprüft
OnAuswahlAsAtlasClickedTests.test_ohne_erzeugten_layer_tut_nichts_weiter Prüft, dass ohne erzeugten Atlas-Layer keine UI-Aktualisierung stattfindet. grün nie geprüft
PopulateAtlasLayerComboTests.test_befuellt_combo_ohne_druckrechteck_und_leere_namen Prüft, dass _populate_atlas_layer_combo alle Layernamen außer 'Druckrechteck' und leeren Namen einträgt. grün nie geprüft
PopulateAtlasLayerComboTests.test_ohne_atlas_layer_combo_tut_nichts Prüft, dass _populate_atlas_layer_combo ohne Atlas-Dropdown keine Ausnahme wirft. grün nie geprüft
OnAtlasErzeugenChangedTests.test_aktiviert_speichert_variable_und_aktiviert_widgets Prüft, dass ein aktivierter Atlas-Schalter die Variable setzt und Layer-Combo/Button aktiviert. grün nie geprüft
OnAtlasErzeugenChangedTests.test_deaktiviert_speichert_variable_und_deaktiviert_widgets Prüft, dass ein deaktivierter Atlas-Schalter die Variable setzt und Layer-Combo/Button deaktiviert. grün nie geprüft
OnAtlasErzeugenChangedTests.test_ohne_widgets_wirft_keine_ausnahme Prüft, dass _on_atlas_erzeugen_changed ohne Atlas-Combo/-Button keine Ausnahme wirft. 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/dateipfad (Issue #65/#67).

Testgruppen:

  • IstVerfahrensDbAktionTests (2 Testfälle): — (Docstring fehlt)
  • ErlaubtePersistierungTests (2 Testfälle): — (Docstring fehlt)
  • DateipfadTests (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
DateipfadTests.test_liefert_path_wenn_kontext_ein_path_ist Prüft, dass dateipfad den Kontext liefert, wenn dieser bereits ein Path-Objekt ist. grün nie geprüft
DateipfadTests.test_liefert_none_wenn_kontext_kein_path_ist Prüft, dass dateipfad None liefert, wenn der Kontext kein Path-Objekt ist (z. B. String oder Layer). 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/create_buffer_layer (Issue #65/#67).

Testgruppen:

  • PolygonZuLinieTests (7 Testfälle): — (Docstring fehlt)
  • LayerExistsInGpkgTests (4 Testfälle): — (Docstring fehlt)
  • CreateBufferLayerTests (3 Testfälle): Deckt nur die Wächter ab: die eigentliche Pufferbildung importiert qgis.core.QgsFeature
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
CreateBufferLayerTests.test_ohne_qgis_liefert_none Prüft, dass create_buffer_layer ohne verfügbares QGIS None liefert. grün nie geprüft
CreateBufferLayerTests.test_fehlender_source_layer_liefert_none Prüft, dass ein fehlender Quelllayer (None) None liefert, auch wenn QGIS verfügbar wäre. grün nie geprüft
CreateBufferLayerTests.test_source_layer_ohne_getfeatures_liefert_none Prüft, dass ein Quelllayer ohne getFeatures()-Methode None liefert. 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/find_dock_widgets/add_menu/remove_menu (Issue #65/#67).

Testgruppen:

  • AddLayerToProjectTests (4 Testfälle): — (Docstring fehlt)
  • FindDockWidgetsTests (3 Testfälle): — (Docstring fehlt)
  • AddRemoveMenuTests (5 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
FindDockWidgetsTests.test_ohne_main_window_liefert_leere_liste Prüft, dass find_dock_widgets ohne verfügbares Hauptfenster eine leere Liste liefert. grün nie geprüft
FindDockWidgetsTests.test_liefert_dock_widgets_des_main_window Prüft, dass find_dock_widgets die vom Hauptfenster gefundenen Dock-Widgets durchreicht. grün nie geprüft
FindDockWidgetsTests.test_fehler_beim_suchen_liefert_leere_liste Prüft, dass ein Fehler beim Suchen der Dock-Widgets abgefangen wird und eine leere Liste liefert. grün nie geprüft
AddRemoveMenuTests.test_add_menu_ohne_main_window_tut_nichts Prüft, dass add_menu ohne Hauptfenster keine Ausnahme wirft. grün nie geprüft
AddRemoveMenuTests.test_add_menu_mit_echtem_qt_menu_fuegt_es_der_menubar_hinzu Prüft, dass ein echtes Qt-Menü (mit menuAction) der Menüleiste hinzugefügt wird. grün nie geprüft
AddRemoveMenuTests.test_add_menu_ohne_menuaction_wird_ignoriert Prüft, dass ein Objekt ohne menuAction nicht an die Menüleiste übergeben wird. grün nie geprüft
AddRemoveMenuTests.test_remove_menu_entfernt_ueber_menuaction Prüft, dass remove_menu das Menü über dessen menuAction() aus der Menüleiste entfernt. grün nie geprüft
AddRemoveMenuTests.test_remove_menu_ohne_main_window_tut_nichts Prüft, dass remove_menu ohne Hauptfenster keine Ausnahme wirft. 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/_build_input (Issue #65/#67).

Testgruppen:

  • SaveDataTests (2 Testfälle): — (Docstring fehlt)
  • LoadDataTests (4 Testfälle): — (Docstring fehlt)
  • BuildInputTests (2 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
BuildInputTests.test_landkreis_feld_liefert_combobox_mit_allen_landkreisen Prüft, dass _build_input für das Landkreis-Feld eine ComboBox mit Platzhalter und allen Landkreisen liefert. grün nie geprüft
BuildInputTests.test_anderes_feld_liefert_lineedit Prüft, dass _build_input für ein normales Feld ein leeres Textfeld liefert. 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 317 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. „beabsichtigt“ liest den Docstring der Funktion: Enthält er einen Vermerk wie „von Test abgesehen, weil …“ oder „Test ausgesetzt, zunächst Refactor“, gilt der fehlende Test als bewusste Entscheidung. Alles andere ist „ungeklärt“ – die eigentliche Arbeitsliste.

sn_basis – 76 von 229 (33 %) ohne Testbezug (9 ungeklärt, 67 beabsichtigt)

functions/dialog_wrapper.py (9)

  • show_info_dialog (Zeile 42) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • ask_detailpruefung_oder_vg_laden (Zeile 192) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • ask_detailpruefung_oder_abbrechen (Zeile 244) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • ProgressDialog.set_total (Zeile 339) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • ProgressDialog.set_value (Zeile 348) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • ProgressDialog.set_label (Zeile 361) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • ProgressDialog.is_canceled (Zeile 371) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • ProgressDialog.raise_to_front (Zeile 389) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • create_progress_dialog (Zeile 408) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026

functions/message_wrapper.py (2)

  • info (Zeile 67) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • success (Zeile 84) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026

functions/os_wrapper.py (5)

  • normalize_path (Zeile 43) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • get_home_dir (Zeile 55) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • is_absolute_path (Zeile 64) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • basename (Zeile 75) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • path_suffix (Zeile 106) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026

functions/qgisui_wrapper.py (1)

  • add_toolbar (Zeile 204) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026

functions/qt_wrapper.py (2)

  • exec_dialog (Zeile 60) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • debug_qt_status (Zeile 67) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026

modules/DataGrabber.py (3)

  • DataGrabber.set_source (Zeile 68) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • DataGrabber._process_database_source (Zeile 312) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • DataGrabber._process_service_source (Zeile 324) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026

modules/Dateipruefer.py (2)

  • Dateipruefer._ist_leer (Zeile 98) — ungeklärt
  • Dateipruefer._handle_leere_eingabe (Zeile 227) — ungeklärt

modules/Datenschreiber.py (1)

  • Datenschreiber._store_style_in_gpkg (Zeile 77) — ungeklärt

modules/LayerLoader.py (2)

  • LayerLoader._was_canceled (Zeile 42) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • LayerLoader._process_events (Zeile 51) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026

modules/linkpruefer.py (3)

  • Linkpruefer._ist_url (Zeile 41) — ungeklärt
  • Linkpruefer._pruefe_url (Zeile 81) — ungeklärt
  • Linkpruefer._pruefe_dateipfad (Zeile 115) — ungeklärt

modules/print_layout.py (11)

  • PrintLayout._create_map_item (Zeile 98) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLayout._set_item_frame_stroke_width (Zeile 120) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLayout._fit_extent_to_map_item (Zeile 156) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLayout.add_text_label (Zeile 214) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLayout._setup_layout_objects (Zeile 246) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLayout._create_label_item (Zeile 378) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLayout._resolve_visible_map_layers (Zeile 476) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLayout._apply_grid_common_settings (Zeile 798) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLayout._safe_grid_call (Zeile 805) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLayout._apply_grid_annotation_text_style (Zeile 817) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLayout._create_rectangle_box_item (Zeile 918) — beabsichtigt: Test ausgesetzt, zunächst Refactor

modules/print_layout_baufreigabe.py (3)

  • PrintLayoutBaufreigabe.create_baufreigabe_layout (Zeile 90) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLayoutBaufreigabe._setup_layout_objects_baufreigabe (Zeile 264) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLayoutBaufreigabe._calc_atlas_margin_percent (Zeile 398) — beabsichtigt: Test ausgesetzt, zunächst Refactor

modules/print_logic.py (20)

  • PrintLogic._failed_result (Zeile 123) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._show_target_size_too_small (Zeile 127) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._is_enabled_flag (Zeile 135) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._resolve_layer_from_project (Zeile 141) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._resolve_active_layer (Zeile 162) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._get_druckpuffer_cm (Zeile 172) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._get_druckpuffer_m (Zeile 181) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._import_qgis_symbol (Zeile 185) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._build_rectangle (Zeile 193) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._clone_extent (Zeile 203) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._get_existing_layer_by_name (Zeile 270) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._create_druckrechteck_layer (Zeile 284) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._clear_layer_features (Zeile 313) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic.configure_atlas_for_baufreigabe_layout (Zeile 483) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._store_druckrechteck (Zeile 631) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic.activate_druckrechteck_capture (Zeile 680) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._resolve_selection_layer (Zeile 811) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._get_selected_extent (Zeile 825) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._get_plot_dimensions_mm (Zeile 1078) — beabsichtigt: Test ausgesetzt, zunächst Refactor
  • PrintLogic._get_required_map_dimensions_mm (Zeile 1088) — beabsichtigt: Test ausgesetzt, zunächst Refactor

modules/Pruefmanager.py (5)

  • Pruefmanager.report_summary (Zeile 45) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • Pruefmanager.zeige_hinweis (Zeile 63) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • Pruefmanager._handle_datei_existiert (Zeile 87) — ungeklärt
  • Pruefmanager._handle_verfahrensgebiet_layer_existiert (Zeile 234) — ungeklärt
  • Pruefmanager._ask_use_or_replace_pufferlayer (Zeile 277) — ungeklärt

ui/tabs/print_tab.py (7)

  • PrintTab._build_ui (Zeile 115) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • PrintTab._on_kartenname_changed (Zeile 335) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • PrintTab._on_massstab_changed (Zeile 349) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • PrintTab._on_zielgroesse_changed (Zeile 361) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • PrintTab._on_formfaktor_changed (Zeile 367) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • PrintTab._on_druckbereich_changed (Zeile 374) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
  • PrintTab._format_druckpuffer_label (Zeile 432) — beabsichtigt: von Test abgesehen, weil vernachlässigbar; HD 18.09.2026

sn_verfahrensgebiet – 34 von 104 (33 %) ohne Testbezug (34 ungeklärt, 0 beabsichtigt)

functions/beteiligung_pruefung.py (5)

  • _baue_nenner_kennzeichen (Zeile 139) — ungeklärt
  • _hole_flurstuecke_layer (Zeile 253) — ungeklärt
  • _flurstueckskennzeichen_geometrien (Zeile 258) — ungeklärt
  • _try1_listenabgleich (Zeile 279) — ungeklärt
  • _lese_vef_vkzf (Zeile 380) — ungeklärt

functions/flurstueck_alkis.py (1)

  • _vorhandene_kennzeichen (Zeile 80) — ungeklärt

functions/gemarkung_alkis.py (1)

  • gemarkung_schluessel_von_vg_geometrie (Zeile 212) — ungeklärt

functions/grenzpunkt_alkis.py (4)

  • _punktort_ta_bbox_param (Zeile 115) — ungeklärt
  • _hat_geometrie (Zeile 573) — ungeklärt
  • _lade_gemarkung_extents_mit_puffer (Zeile 637) — ungeklärt
  • _lade_punktort_ta_batches_per_gemarkung (Zeile 784) — ungeklärt

functions/knickpunkt_pruefung.py (2)

  • _setze_kategorien_symbologie (Zeile 158) — ungeklärt
  • erstelle_korrigiertes_polygon (Zeile 604) — ungeklärt

functions/umringspruefung.py (3)

  • _zerlege_in_teile (Zeile 55) — ungeklärt
  • _setze_kategorien_symbologie (Zeile 112) — ungeklärt
  • umringspruefung (Zeile 152) — ungeklärt

functions/umringstatistik_grenzpunkte.py (3)

  • _setze_kategorien_symbologie (Zeile 74) — ungeklärt
  • _klassifiziere (Zeile 119) — ungeklärt
  • umringstatistik_grenzpunkte (Zeile 164) — ungeklärt

functions/verfahrensgebiet_alkis.py (1)

  • _baue_layer_aus_kombinationen (Zeile 144) — ungeklärt

functions/verfahrensgebiet_alkis_komplett.py (2)

  • _entferne_hilfs_layer (Zeile 100) — ungeklärt
  • _flaeche_des_layers (Zeile 210) — ungeklärt

functions/verfahrensgebiet_dialoge.py (1)

  • ask_landkreis_objekte (Zeile 101) — ungeklärt

functions/verfahrensgebiet_shape_komplett.py (6)

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

ui/tabs/working_tab.py (5)

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

sn_plan41 – 39 von 80 (49 %) ohne Testbezug (39 ungeklärt, 0 beabsichtigt)

modules/vln_api_client.py (3)

  • KartenApiClient.load_feature_collection (Zeile 154) — ungeklärt
  • KartenApiClient._request (Zeile 176) — ungeklärt
  • KartenApiClient._error_detail (Zeile 235) — ungeklärt

modules/vln_api_logic.py (4)

  • VlnApiLogic.get_p41_layers (Zeile 233) — ungeklärt
  • VlnApiLogic.remove_p41_layers (Zeile 237) — ungeklärt
  • VlnApiLogic._apply_p41_styles (Zeile 277) — ungeklärt
  • VlnApiLogic.upload_summary (Zeile 347) — ungeklärt

modules/vln_layer_manager.py (2)

  • _family (Zeile 58) — ungeklärt
  • memory_layer_from_features (Zeile 73) — ungeklärt

ui/dockwidget.py (1)

  • DockWidget._init_tabs_with_services (Zeile 42) — ungeklärt

ui/tab_a_logic.py (15)

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

ui/tab_a_ui.py (14)

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