Prüfstand

Testkatalog der sn_*-Plugins — was die Suite heute prüft, auf einen Blick.
Quelle: docs/tests/testkatalog.md
Baseline: docs/status/testbaseline.json (SHA-256 aeabc946a7f3)
Prüf-Audit: docs/status/testpruefungen.json (SHA-256 e2ea4d5d5f8a)
346Testfälle
301grün
37rot (Baseline)
35%mit Docstring
2%aktuell geprüft
31Testdateien
Verteilung je Paket
sn_basis14 Dateien · 94 Testfälle
sn_verfahrensgebiet12 Dateien · 208 Testfälle
sn_plan415 Dateien · 44 Testfälle

sn_basis

Plattform-Plugin · Ordner Plugin_SN_Basis · 14 Testdateien · 94 Testfälle

— (Docstring fehlt)

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

— (Docstring fehlt)

TestDataGrabber 6
flowchart TD
  root(["test_datagrabber.py"])
  class root rootnode
  root --> g1["TestDataGrabber (6)"]
  class g1 groupnode
  g1 --> t1("analyze_source_type_detects_excel")
  g1 --> t2("analyze_source_type_returns_unknown_filetype")
  g1 --> t3("analyze_source_type_detects_service_when_file_check_fails")
  g1 --> t4("analyze_source_type_returns_unbekannte_quelle_on_full_failure")
  g1 --> t5("run_returns_success_summary_with_valid_rows")
  g1 --> t6("run_returns_failure_summary_without_rows")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  class t6 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestDataGrabber
test_analyze_source_type_detects_excel
Prüft, dass eine erreichbare .xlsx-Datei als Quelltyp 'excel' erkannt wird.grüngeprü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üngeprü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üngeprü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üngeprü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üngeprü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üngeprüft am 2026-09-16

— (Docstring fehlt)

TestDateipruefer 6
flowchart TD
  root(["test_dateipruefer.py"])
  class root rootnode
  root --> g1["TestDateipruefer (6)"]
  class g1 groupnode
  g1 --> t1("leereingabe_erlaubt")
  g1 --> t2("leereingabe_nicht_erlaubt")
  g1 --> t3("standarddatei_vorschlagen")
  g1 --> t4("temporaer_erlaubt")
  g1 --> t5("datei_nicht_gefunden")
  g1 --> t6("datei_ok")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  class t6 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestDateipruefer
test_leereingabe_erlaubt
— (Docstring fehlt)grünnie geprüft
TestDateipruefer
test_leereingabe_nicht_erlaubt
— (Docstring fehlt)grünnie geprüft
TestDateipruefer
test_standarddatei_vorschlagen
— (Docstring fehlt)grünnie geprüft
TestDateipruefer
test_temporaer_erlaubt
— (Docstring fehlt)grünnie geprüft
TestDateipruefer
test_datei_nicht_gefunden
— (Docstring fehlt)grünnie geprüft
TestDateipruefer
test_datei_ok
— (Docstring fehlt)grünnie geprüft

Unit-Tests für `sn_basis.functions.laenderkennung`.

TestGetLaenderkennung 5
flowchart TD
  root(["test_laenderkennung.py"])
  class root rootnode
  root --> g1["TestGetLaenderkennung (5)"]
  class g1 groupnode
  g1 --> t1("bekannter_praefix_gibt_kennung_zurueck")
  g1 --> t2("praefix_gross_klein_unabhaengig")
  g1 --> t3("unbekannter_praefix_wirft_keyerror")
  g1 --> t4("ohne_argument_wird_aus_aufrufendem_modul_abgeleitet")
  g1 --> t5("mapping_enthaelt_sachsen")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestGetLaenderkennung
test_bekannter_praefix_gibt_kennung_zurueck
— (Docstring fehlt)grünnie geprüft
TestGetLaenderkennung
test_praefix_gross_klein_unabhaengig
— (Docstring fehlt)grünnie geprüft
TestGetLaenderkennung
test_unbekannter_praefix_wirft_keyerror
— (Docstring fehlt)grünnie geprüft
TestGetLaenderkennung
test_ohne_argument_wird_aus_aufrufendem_modul_abgeleitet
— (Docstring fehlt)grünnie geprüft
TestGetLaenderkennung
test_mapping_enthaelt_sachsen
— (Docstring fehlt)grünnie geprüft

— (Docstring fehlt)

TestLayerpruefer 10
flowchart TD
  root(["test_layerpruefer.py"])
  class root rootnode
  root --> g1["TestLayerpruefer (10)"]
  class g1 groupnode
  g1 --> t1("layer_exists")
  g1 --> t2("layer_unsichtbar")
  g1 --> t3("falscher_layertyp")
  g1 --> t4("falscher_geotyp")
  g1 --> t5("layer_leer")
  g1 --> t6("falsches_crs")
  g1 --> t7("felder_fehlen")
  g1 --> t8("datenquelle_unerwartet")
  g1 --> t9("layer_nicht_editierbar")
  g1 --> t10("layer_ok")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  class t6 ok
  class t7 ok
  class t8 ok
  class t9 ok
  class t10 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestLayerpruefer
test_layer_exists
— (Docstring fehlt)grünnie geprüft
TestLayerpruefer
test_layer_unsichtbar
— (Docstring fehlt)grünnie geprüft
TestLayerpruefer
test_falscher_layertyp
— (Docstring fehlt)grünnie geprüft
TestLayerpruefer
test_falscher_geotyp
— (Docstring fehlt)grünnie geprüft
TestLayerpruefer
test_layer_leer
— (Docstring fehlt)grünnie geprüft
TestLayerpruefer
test_falsches_crs
— (Docstring fehlt)grünnie geprüft
TestLayerpruefer
test_felder_fehlen
— (Docstring fehlt)grünnie geprüft
TestLayerpruefer
test_datenquelle_unerwartet
— (Docstring fehlt)grünnie geprüft
TestLayerpruefer
test_layer_nicht_editierbar
— (Docstring fehlt)grünnie geprüft
TestLayerpruefer
test_layer_ok
— (Docstring fehlt)grünnie geprüft

— (Docstring fehlt)

TestLinkpruefer 5
flowchart TD
  root(["test_linkpruefer.py"])
  class root rootnode
  root --> g1["TestLinkpruefer (5)"]
  class g1 groupnode
  g1 --> t1("remote_link_ok")
  g1 --> t2("remote_link_error")
  g1 --> t3("remote_link_network_error")
  g1 --> t4("local_link_not_found")
  g1 --> t5("local_link_ok")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestLinkpruefer
test_remote_link_ok
— (Docstring fehlt)grünnie geprüft
TestLinkpruefer
test_remote_link_error
— (Docstring fehlt)grünnie geprüft
TestLinkpruefer
test_remote_link_network_error
— (Docstring fehlt)grünnie geprüft
TestLinkpruefer
test_local_link_not_found
— (Docstring fehlt)grünnie geprüft
TestLinkpruefer
test_local_link_ok
— (Docstring fehlt)grünnie geprüft

— (Docstring fehlt)

TestPrintLayout 5
flowchart TD
  root(["test_print_layout.py"])
  class root rootnode
  root --> g1["TestPrintLayout (5)"]
  class g1 groupnode
  g1 --> t1("create_legend_item_links_map_and_enables_map_filtering")
  g1 --> t2("create_legend_item_does_not_copy_project_layers_into_legend_model")
  g1 --> t3("configure_legend_size_uses_content_adaptive_size")
  g1 --> t4("configure_hauptkarte_grids_uses_wrapper_constants")
  g1 --> t5("create_single_page_layout_keeps_legend_linked_to_hauptkarte_and_theme")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestPrintLayout
test_create_legend_item_links_map_and_enables_map_filtering
— (Docstring fehlt)grünnie geprüft
TestPrintLayout
test_create_legend_item_does_not_copy_project_layers_into_legend_model
— (Docstring fehlt)grünnie geprüft
TestPrintLayout
test_configure_legend_size_uses_content_adaptive_size
— (Docstring fehlt)grünnie geprüft
TestPrintLayout
test_configure_hauptkarte_grids_uses_wrapper_constants
— (Docstring fehlt)grünnie geprüft
TestPrintLayout
test_create_single_page_layout_keeps_legend_linked_to_hauptkarte_and_theme
— (Docstring fehlt)grünnie geprüft

— (Docstring fehlt)

TestPrintLogic 17
flowchart TD
  root(["test_print_logic.py"])
  class root rootnode
  root --> g1["TestPrintLogic (17)"]
  class g1 groupnode
  g1 --> t1("get_baufreigabe_page_dimensions_prefers_a4_for_small_extent")
  g1 --> t2("get_baufreigabe_page_dimensions_escalates_to_a3")
  g1 --> t3("get_baufreigabe_page_dimensions_respects_a4_as_maximum_with_fallback")
  g1 --> t4("get_baufreigabe_page_dimensions_falls_back_to_a3_for_oversize_extent")
  g1 --> t5("select_standard_page_layout_uses_a4_as_minimum_sheet")
  g1 --> t6("select_standard_page_layout_limits_hauptkarte_to_a3")
  g1 --> t7("select_standard_page_layout_returns_none_if_a3_is_too_small")
  g1 --> t8("get_standard_layout_dimensions_uses_a4_and_forces_fit_for_small_extent")
  g1 --> t9("get_standard_layout_dimensions_caps_endlosrolle_width_at_2000_mm")
  g1 --> t10("apply_standard_minimum_a4_fallback_for_small_page")
  g1 --> t11("apply_standard_minimum_a4_fallback_keeps_large_page")
  g1 --> t12("does_plot_fit_page_true_for_standard_a4")
  g1 --> t13("does_plot_fit_page_false_if_objects_exceed_page")
  g1 --> t14("set_druckbereich_accepts_wie_kartenfenster")
  g1 --> t15("get_canvas_extent_returns_valid_extent")
  g1 --> t16("resolve_extent_uses_canvas_extent_without_buffer")
  g1 --> t17("resolve_extent_uses_rectangle_extent_without_buffer")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  class t6 ok
  class t7 ok
  class t8 ok
  class t9 ok
  class t10 ok
  class t11 ok
  class t12 ok
  class t13 ok
  class t14 ok
  class t15 ok
  class t16 ok
  class t17 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestPrintLogic
test_get_baufreigabe_page_dimensions_prefers_a4_for_small_extent
— (Docstring fehlt)grünnie geprüft
TestPrintLogic
test_get_baufreigabe_page_dimensions_escalates_to_a3
— (Docstring fehlt)grünnie geprüft
TestPrintLogic
test_get_baufreigabe_page_dimensions_respects_a4_as_maximum_with_fallback
— (Docstring fehlt)grünnie geprüft
TestPrintLogic
test_get_baufreigabe_page_dimensions_falls_back_to_a3_for_oversize_extent
— (Docstring fehlt)grünnie geprüft
TestPrintLogic
test_select_standard_page_layout_uses_a4_as_minimum_sheet
— (Docstring fehlt)grünnie geprüft
TestPrintLogic
test_select_standard_page_layout_limits_hauptkarte_to_a3
— (Docstring fehlt)grünnie geprüft
TestPrintLogic
test_select_standard_page_layout_returns_none_if_a3_is_too_small
— (Docstring fehlt)grünnie geprüft
TestPrintLogic
test_get_standard_layout_dimensions_uses_a4_and_forces_fit_for_small_extent
— (Docstring fehlt)grünnie geprüft
TestPrintLogic
test_get_standard_layout_dimensions_caps_endlosrolle_width_at_2000_mm
— (Docstring fehlt)grünnie geprüft
TestPrintLogic
test_apply_standard_minimum_a4_fallback_for_small_page
— (Docstring fehlt)grünnie geprüft
TestPrintLogic
test_apply_standard_minimum_a4_fallback_keeps_large_page
— (Docstring fehlt)grünnie geprüft
TestPrintLogic
test_does_plot_fit_page_true_for_standard_a4
— (Docstring fehlt)grünnie geprüft
TestPrintLogic
test_does_plot_fit_page_false_if_objects_exceed_page
— (Docstring fehlt)grünnie geprüft
TestPrintLogic
test_set_druckbereich_accepts_wie_kartenfenster
— (Docstring fehlt)grünnie geprüft
TestPrintLogic
test_get_canvas_extent_returns_valid_extent
— (Docstring fehlt)grünnie geprüft
TestPrintLogic
test_resolve_extent_uses_canvas_extent_without_buffer
— (Docstring fehlt)grünnie geprüft
TestPrintLogic
test_resolve_extent_uses_rectangle_extent_without_buffer
— (Docstring fehlt)grünnie geprüft

— (Docstring fehlt)

TestPruefmanager 14
flowchart TD
  root(["test_pruefmanager.py"])
  class root rootnode
  root --> g1["TestPruefmanager (14)"]
  class g1 groupnode
  g1 --> t1("ok")
  g1 --> t2("leereingabe_erlaubt_ja")
  g1 --> t3("leereingabe_erlaubt_nein")
  g1 --> t4("standarddatei_vorschlagen_ja")
  g1 --> t5("standarddatei_vorschlagen_nein")
  g1 --> t6("temporaer_erlaubt_ja")
  g1 --> t7("temporaer_erlaubt_nein")
  g1 --> t8("layer_unsichtbar_ja")
  g1 --> t9("layer_unsichtbar_nein")
  g1 --> t10("unbekannte_aktion")
  g1 --> t11("datei_existiert_overwrite")
  g1 --> t12("datei_existiert_append")
  g1 --> t13("datei_existiert_cancel")
  g1 --> t14("datei_existiert_in_non_qgis_mode_returns_input")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  class t6 ok
  class t7 ok
  class t8 ok
  class t9 ok
  class t10 ok
  class t11 ok
  class t12 ok
  class t13 ok
  class t14 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestPruefmanager
test_ok
— (Docstring fehlt)grünnie geprüft
TestPruefmanager
test_leereingabe_erlaubt_ja
— (Docstring fehlt)grünnie geprüft
TestPruefmanager
test_leereingabe_erlaubt_nein
— (Docstring fehlt)grünnie geprüft
TestPruefmanager
test_standarddatei_vorschlagen_ja
— (Docstring fehlt)grünnie geprüft
TestPruefmanager
test_standarddatei_vorschlagen_nein
— (Docstring fehlt)grünnie geprüft
TestPruefmanager
test_temporaer_erlaubt_ja
— (Docstring fehlt)grünnie geprüft
TestPruefmanager
test_temporaer_erlaubt_nein
— (Docstring fehlt)grünnie geprüft
TestPruefmanager
test_layer_unsichtbar_ja
— (Docstring fehlt)grünnie geprüft
TestPruefmanager
test_layer_unsichtbar_nein
— (Docstring fehlt)grünnie geprüft
TestPruefmanager
test_unbekannte_aktion
— (Docstring fehlt)grünnie geprüft
TestPruefmanager
test_datei_existiert_overwrite
— (Docstring fehlt)grünnie geprüft
TestPruefmanager
test_datei_existiert_append
— (Docstring fehlt)grünnie geprüft
TestPruefmanager
test_datei_existiert_cancel
— (Docstring fehlt)grünnie geprüft
TestPruefmanager
test_datei_existiert_in_non_qgis_mode_returns_input
— (Docstring fehlt)grünnie geprüft

— (Docstring fehlt)

TestSettingsLogic 4
flowchart TD
  root(["test_settings_logic.py"])
  class root rootnode
  root --> g1["TestSettingsLogic (4)"]
  class g1 groupnode
  g1 --> t1("load")
  g1 --> t2("save")
  g1 --> t3("load_handles_partial_values_with_empty_fallback")
  g1 --> t4("save_empty_string_value_is_persisted")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestSettingsLogic
test_load
— (Docstring fehlt)grünnie geprüft
TestSettingsLogic
test_save
— (Docstring fehlt)grünnie geprüft
TestSettingsLogic
test_load_handles_partial_values_with_empty_fallback
— (Docstring fehlt)grünnie geprüft
TestSettingsLogic
test_save_empty_string_value_is_persisted
— (Docstring fehlt)grünnie geprüft

— (Docstring fehlt)

TestStilpruefer 4
flowchart TD
  root(["test_stilpruefer.py"])
  class root rootnode
  root --> g1["TestStilpruefer (4)"]
  class g1 groupnode
  g1 --> t1("keine_datei_angegeben")
  g1 --> t2("datei_existiert_mit_qml")
  g1 --> t3("datei_existiert_falsche_endung")
  g1 --> t4("datei_existiert_nicht")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestStilpruefer
test_keine_datei_angegeben
— (Docstring fehlt)grünnie geprüft
TestStilpruefer
test_datei_existiert_mit_qml
— (Docstring fehlt)grünnie geprüft
TestStilpruefer
test_datei_existiert_falsche_endung
— (Docstring fehlt)grünnie geprüft
TestStilpruefer
test_datei_existiert_nicht
— (Docstring fehlt)grünnie geprüft

Unit-Tests für `sn_basis.functions.text_wrapper`.

TestSanitizeBezeichner 7
flowchart TD
  root(["test_text_wrapper.py"])
  class root rootnode
  root --> g1["TestSanitizeBezeichner (7)"]
  class g1 groupnode
  g1 --> t1("umlaute_bleiben_erhalten")
  g1 --> t2("bindestrich_bleibt_erhalten")
  g1 --> t3("unterstrich_bleibt_erhalten")
  g1 --> t4("leerzeichen_wird_durch_ersatz_zusammengefasst")
  g1 --> t5("fuehrender_und_folgender_ersatz_wird_entfernt")
  g1 --> t6("eigenes_ersatzzeichen_wird_verwendet")
  g1 --> t7("nur_unzulaessige_zeichen_ergibt_leeren_string")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  class t6 ok
  class t7 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestSanitizeBezeichner
test_umlaute_bleiben_erhalten
Prüft, dass Umlaute und ß nicht durch den Ersatz entfernt werden.grünnie geprüft
TestSanitizeBezeichner
test_bindestrich_bleibt_erhalten
Prüft, dass ein Bindestrich im Bezeichner erhalten bleibt (Issue #42).grünnie geprüft
TestSanitizeBezeichner
test_unterstrich_bleibt_erhalten
Prüft, dass ein Unterstrich im Bezeichner erhalten bleibt.grünnie geprüft
TestSanitizeBezeichner
test_leerzeichen_wird_durch_ersatz_zusammengefasst
Prüft, dass Leerzeichen (kein zulässiges Zeichen) zu einem Ersatzzeichen werden.grünnie geprüft
TestSanitizeBezeichner
test_fuehrender_und_folgender_ersatz_wird_entfernt
Prüft, dass ein Ersatzzeichen am Anfang oder Ende des Ergebnisses entfernt wird.grünnie geprüft
TestSanitizeBezeichner
test_eigenes_ersatzzeichen_wird_verwendet
Prüft, dass ein abweichendes Ersatzzeichen anstelle von Unterstrich genutzt wird.grünnie 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ünnie geprüft

— (Docstring fehlt)

TestVariableWrapper 6
flowchart TD
  root(["test_variable_wrapper.py"])
  class root rootnode
  root --> g1["TestVariableWrapper (6)"]
  class g1 groupnode
  g1 --> t1("set_variable_project_noop_write_is_skipped")
  g1 --> t2("set_variable_project_changed_value_is_written")
  g1 --> t3("set_variable_global_writes_prefixed_name")
  g1 --> t4("get_variable_global_returns_empty_string_fallback")
  g1 --> t5("get_variable_invalid_scope_raises")
  g1 --> t6("set_variable_invalid_scope_raises")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  class t6 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestVariableWrapper
test_set_variable_project_noop_write_is_skipped
— (Docstring fehlt)grünnie geprüft
TestVariableWrapper
test_set_variable_project_changed_value_is_written
— (Docstring fehlt)grünnie geprüft
TestVariableWrapper
test_set_variable_global_writes_prefixed_name
— (Docstring fehlt)grünnie geprüft
TestVariableWrapper
test_get_variable_global_returns_empty_string_fallback
— (Docstring fehlt)grünnie geprüft
TestVariableWrapper
test_get_variable_invalid_scope_raises
— (Docstring fehlt)grünnie geprüft
TestVariableWrapper
test_set_variable_invalid_scope_raises
— (Docstring fehlt)grünnie geprüft

— (Docstring fehlt)

TestVerfahrensgebietManager 5
flowchart TD
  root(["test_verfahrensgebiet_manager.py"])
  class root rootnode
  root --> g1["TestVerfahrensgebietManager (5)"]
  class g1 groupnode
  g1 --> t1("get_verfahrensgebiet_layer_id_returns_value")
  g1 --> t2("get_verfahrensgebiet_layer_id_returns_none_for_empty_value")
  g1 --> t3("set_verfahrensgebiet_layer_id_writes_project_variable")
  g1 --> t4("update_without_layer_does_not_write_when_already_empty")
  g1 --> t5("update_with_layer_writes_variable")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestVerfahrensgebietManager
test_get_verfahrensgebiet_layer_id_returns_value
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietManager
test_get_verfahrensgebiet_layer_id_returns_none_for_empty_value
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietManager
test_set_verfahrensgebiet_layer_id_writes_project_variable
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietManager
test_update_without_layer_does_not_write_when_already_empty
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietManager
test_update_with_layer_writes_variable
— (Docstring fehlt)grünnie geprüft

sn_verfahrensgebiet

Fachplugin · Ordner Plugin_SN_Verfahrensgebiet · 12 Testdateien · 208 Testfälle

Unit-Tests für `sn_verfahrensgebiet.functions.beteiligung_pruefung`.

TestBaueFlurstueckCsv 12TestBaueFlurstueckCsvListe 1TestHoleVerfahrensgebietLayer 3TestFordereManuellesLadenAn 2TestTry3Bootstrap 1TestBeteiligungPruefenDispatch 2TestLadeBeteiligungCsv 4
flowchart TD
  root(["test_beteiligung_pruefung.py"])
  class root rootnode
  root --> g1["TestBaueFlurstueckCsv (12)"]
  class g1 groupnode
  g1 --> t1("normalfall_mit_fuehrenden_nullen")
  g1 --> t2("nenner_null_wird_zu_unterstrichen")
  g1 --> t3("nenner_leer_wird_zu_unterstrichen")
  g1 --> t4("gemarkung_ohne_fuehrende_nullen_wird_aufgefuellt")
  g1 --> t5("ungueltiges_format_gibt_none")
  g1 --> t6("leerer_wert_gibt_none")
  g1 --> t7("nenner_9001_wird_zu_buchstabe_a")
  g1 --> t8("nenner_9002_wird_zu_buchstabe_b")
  g1 --> t9("nenner_9026_wird_zu_buchstabe_z")
  g1 --> t10("nenner_ausserhalb_buchstaben_bereich_bleibt_numerisch")
  g1 --> t11("nenner_9001_mit_fuehrenden_nullen_wird_erkannt")
  g1 --> t12("einstellige_folge_wird_auf_2_stellen_aufgefuellt")
  root --> g2["TestBaueFlurstueckCsvListe (1)"]
  class g2 groupnode
  g2 --> t13("nur_gueltige_zeilen_in_liste")
  root --> g3["TestHoleVerfahrensgebietLayer (3)"]
  class g3 groupnode
  g3 --> t14("layer_per_name_hat_vorrang_vor_combo_auswahl")
  g3 --> t15("combo_auswahl_als_fallback_ohne_namens_layer")
  g3 --> t16("kein_layer_gibt_none")
  root --> g4["TestFordereManuellesLadenAn (2)"]
  class g4 groupnode
  g4 --> t17("ohne_vef_vkzf_nennt_fehlende_kennzeichen")
  g4 --> t18("mit_vef_vkzf_nennt_verfahrensnummer")
  root --> g5["TestTry3Bootstrap (1)"]
  class g5 groupnode
  g5 --> t19("setzt_verfahrensnummer_und_fordert_manuelles_laden_an")
  root --> g6["TestBeteiligungPruefenDispatch (2)"]
  class g6 groupnode
  g6 --> t20("layer_ohne_kennzeichen_fordert_manuelles_laden_an")
  g6 --> t21("kein_layer_setzt_verfahrensnummer_und_fordert_laden_an")
  root --> g7["TestLadeBeteiligungCsv (4)"]
  class g7 groupnode
  g7 --> t22("dialog_abgebrochen_gibt_none")
  g7 --> t23("fehlende_flurstueck_spalte_wirft_fehler")
  g7 --> t24("leere_datei_wirft_fehler")
  g7 --> t25("erfolgsfall_gibt_zeilen_und_spalten_zurueck")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  class t6 ok
  class t7 ok
  class t8 ok
  class t9 ok
  class t10 ok
  class t11 ok
  class t12 ok
  class t13 ok
  class t14 ok
  class t15 ok
  class t16 ok
  class t17 ok
  class t18 ok
  class t19 ok
  class t20 ok
  class t21 ok
  class t22 ok
  class t23 ok
  class t24 ok
  class t25 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestBaueFlurstueckCsv
test_normalfall_mit_fuehrenden_nullen
— (Docstring fehlt)grünnie geprüft
TestBaueFlurstueckCsv
test_nenner_null_wird_zu_unterstrichen
— (Docstring fehlt)grünnie geprüft
TestBaueFlurstueckCsv
test_nenner_leer_wird_zu_unterstrichen
— (Docstring fehlt)grünnie geprüft
TestBaueFlurstueckCsv
test_gemarkung_ohne_fuehrende_nullen_wird_aufgefuellt
— (Docstring fehlt)grünnie geprüft
TestBaueFlurstueckCsv
test_ungueltiges_format_gibt_none
— (Docstring fehlt)grünnie geprüft
TestBaueFlurstueckCsv
test_leerer_wert_gibt_none
— (Docstring fehlt)grünnie geprüft
TestBaueFlurstueckCsv
test_nenner_9001_wird_zu_buchstabe_a
— (Docstring fehlt)grünnie geprüft
TestBaueFlurstueckCsv
test_nenner_9002_wird_zu_buchstabe_b
— (Docstring fehlt)grünnie geprüft
TestBaueFlurstueckCsv
test_nenner_9026_wird_zu_buchstabe_z
— (Docstring fehlt)grünnie geprüft
TestBaueFlurstueckCsv
test_nenner_ausserhalb_buchstaben_bereich_bleibt_numerisch
— (Docstring fehlt)grünnie geprüft
TestBaueFlurstueckCsv
test_nenner_9001_mit_fuehrenden_nullen_wird_erkannt
— (Docstring fehlt)grünnie geprüft
TestBaueFlurstueckCsv
test_einstellige_folge_wird_auf_2_stellen_aufgefuellt
— (Docstring fehlt)grünnie geprüft
TestBaueFlurstueckCsvListe
test_nur_gueltige_zeilen_in_liste
— (Docstring fehlt)grünnie geprüft
TestHoleVerfahrensgebietLayer
test_layer_per_name_hat_vorrang_vor_combo_auswahl
— (Docstring fehlt)grünnie geprüft
TestHoleVerfahrensgebietLayer
test_combo_auswahl_als_fallback_ohne_namens_layer
— (Docstring fehlt)grünnie geprüft
TestHoleVerfahrensgebietLayer
test_kein_layer_gibt_none
— (Docstring fehlt)grünnie geprüft
TestFordereManuellesLadenAn
test_ohne_vef_vkzf_nennt_fehlende_kennzeichen
— (Docstring fehlt)grünnie geprüft
TestFordereManuellesLadenAn
test_mit_vef_vkzf_nennt_verfahrensnummer
— (Docstring fehlt)grünnie geprüft
TestTry3Bootstrap
test_setzt_verfahrensnummer_und_fordert_manuelles_laden_an
— (Docstring fehlt)grünnie geprüft
TestBeteiligungPruefenDispatch
test_layer_ohne_kennzeichen_fordert_manuelles_laden_an
— (Docstring fehlt)grünnie geprüft
TestBeteiligungPruefenDispatch
test_kein_layer_setzt_verfahrensnummer_und_fordert_laden_an
— (Docstring fehlt)grünnie geprüft
TestLadeBeteiligungCsv
test_dialog_abgebrochen_gibt_none
— (Docstring fehlt)grünnie geprüft
TestLadeBeteiligungCsv
test_fehlende_flurstueck_spalte_wirft_fehler
— (Docstring fehlt)grünnie geprüft
TestLadeBeteiligungCsv
test_leere_datei_wirft_fehler
— (Docstring fehlt)grünnie geprüft
TestLadeBeteiligungCsv
test_erfolgsfall_gibt_zeilen_und_spalten_zurueck
— (Docstring fehlt)grünnie geprüft

— (Docstring fehlt)

TestDockWidget 2
flowchart TD
  root(["test_dockwidget.py"])
  class root rootnode
  root --> g1["TestDockWidget (2)"]
  class g1 groupnode
  g1 --> t1("init_tabs_with_services_injects_available_services")
  g1 --> t2("init_tabs_with_services_reports_errors")
  class t1 ok
  class t2 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestDockWidget
test_init_tabs_with_services_injects_available_services
— (Docstring fehlt)grünnie geprüft
TestDockWidget
test_init_tabs_with_services_reports_errors
— (Docstring fehlt)grünnie geprüft

Unit-Tests für das flurstueck_alkis-Modul.

TestFlurstueckAlkis 12TestFlurstueckAlkisAnhaengenDedup 3
flowchart TD
  root(["test_flurstueck_alkis.py"])
  class root rootnode
  root --> g1["TestFlurstueckAlkis (12)"]
  class g1 groupnode
  g1 --> t1("user_cancel_returns_none")
  g1 --> t2("empty_text_after_confirmation_returns_none")
  g1 --> t3("invalid_wfs_layer_returns_none")
  g1 --> t4("success_returns_layer_and_first_status")
  g1 --> t5("sql_filter_contains_all_schluessel")
  g1 --> t6("existing_layer_reload_yes")
  g1 --> t7("existing_layer_keep_no")
  g1 --> t8("vorgabe_schluessel_prefills_default_text")
  g1 --> t9("vorgabe_namen_appears_in_label")
  g1 --> t10("bbox_embedded_in_wfs_uri")
  g1 --> t11("backwards_compatible_no_new_params")
  g1 --> t12("ohne_schluessel_abfrage_ueberspringt_ask_text")
  root --> g2["TestFlurstueckAlkisAnhaengenDedup (3)"]
  class g2 groupnode
  g2 --> t13("append_ueberspringt_bereits_vorhandene_flurstuecke")
  g2 --> t14("append_ohne_kennzeichen_feld_haengt_alles_an")
  g2 --> t15("ohne_schluessel_abfrage_append_dedup")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 warn
  class t5 warn
  class t6 warn
  class t7 warn
  class t8 warn
  class t9 warn
  class t10 warn
  class t11 warn
  class t12 ok
  class t13 ok
  class t14 ok
  class t15 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestFlurstueckAlkis
test_user_cancel_returns_none
ask_text → ok=False, text="" → (None, NONE).grünnie geprüft
TestFlurstueckAlkis
test_empty_text_after_confirmation_returns_none
ask_text → ok=True, aber Text leer → (None, NONE).grünnie geprüft
TestFlurstueckAlkis
test_invalid_wfs_layer_returns_none
WFS-Layer nicht valide → (None, NONE).grünnie geprüft
TestFlurstueckAlkis
test_success_returns_layer_and_first_status
Kein bestehender Layer, WFS valide → (layer, FIRST).rotnie geprüft
TestFlurstueckAlkis
test_sql_filter_contains_all_schluessel
Der WFS-URI enthält alle eingegebenen Gemarkungsschlüssel.rotnie geprüft
TestFlurstueckAlkis
test_existing_layer_reload_yes
Bestehender Layer + Nutzer: 'Ja, neu laden' → LoadStatus.RELOAD.rotnie geprüft
TestFlurstueckAlkis
test_existing_layer_keep_no
Bestehender Layer + Nutzer: 'Nein, behalten' → LoadStatus.KEEP.rotnie geprüft
TestFlurstueckAlkis
test_vorgabe_schluessel_prefills_default_text
vorgabe_schluessel=['1234','5678'] → ask_text erhält '1234, 5678' als default_text.rotnie geprüft
TestFlurstueckAlkis
test_vorgabe_namen_appears_in_label
vorgabe_namen=['Musterstadt'] → ask_text-label enthält den Namen.rotnie geprüft
TestFlurstueckAlkis
test_bbox_embedded_in_wfs_uri
bbox-Parameter → WFS-URI enthält 'bbox=' Substring.rotnie geprüft
TestFlurstueckAlkis
test_backwards_compatible_no_new_params
flurstueck_alkis(tab) ohne neue Parameter → kein Fehler.rotnie geprüft
TestFlurstueckAlkis
test_ohne_schluessel_abfrage_ueberspringt_ask_text
ohne_schluessel_abfrage=True verwendet vorgabe_schluessel direkt, ohne ask_text aufzurufen.grünnie geprüft
TestFlurstueckAlkisAnhaengenDedup
test_append_ueberspringt_bereits_vorhandene_flurstuecke
Prüft, dass beim Anhängen bereits vorhandene flurstueckskennzeichen nicht erneut hinzugefügt werden.grünnie 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ünnie 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ünnie geprüft

Unit-Tests für `sn_verfahrensgebiet.functions.gemarkung_alkis`.

TestExtractSchluesselUndName 4TestGemarkungSchluesselbbox 6TestGemarkungSchluesselnurNummern 2TestLadeGemarkungenlayer 2
flowchart TD
  root(["test_gemarkung_alkis.py"])
  class root rootnode
  root --> g1["TestExtractSchluesselUndName (4)"]
  class g1 groupnode
  g1 --> t1("standard_attribute")
  g1 --> t2("fallback_attribute")
  g1 --> t3("missing_attribute_returns_empty")
  g1 --> t4("none_value_returns_empty")
  root --> g2["TestGemarkungSchluesselbbox (6)"]
  class g2 groupnode
  g2 --> t5("success_bbox_filter")
  g2 --> t6("fallback_when_bbox_fails")
  g2 --> t7("both_layers_fail_returns_empty")
  g2 --> t8("deduplication_and_sorting")
  g2 --> t9("feature_without_schluessel_skipped")
  g2 --> t10("exception_returns_empty")
  root --> g3["TestGemarkungSchluesselnurNummern (2)"]
  class g3 groupnode
  g3 --> t11("returns_only_nummern")
  g3 --> t12("empty_input_returns_empty")
  root --> g4["TestLadeGemarkungenlayer (2)"]
  class g4 groupnode
  g4 --> t13("returns_layer_when_service_reachable")
  g4 --> t14("returns_none_when_service_unreachable")
  class t1 warn
  class t2 warn
  class t3 ok
  class t4 ok
  class t5 skip
  class t6 skip
  class t7 skip
  class t8 skip
  class t9 skip
  class t10 skip
  class t11 skip
  class t12 skip
  class t13 ok
  class t14 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestExtractSchluesselUndName
test_standard_attribute
— (Docstring fehlt)rotnie geprüft
TestExtractSchluesselUndName
test_fallback_attribute
— (Docstring fehlt)rotnie geprüft
TestExtractSchluesselUndName
test_missing_attribute_returns_empty
— (Docstring fehlt)grünnie geprüft
TestExtractSchluesselUndName
test_none_value_returns_empty
— (Docstring fehlt)grünnie geprüft
TestGemarkungSchluesselbbox
test_success_bbox_filter
WFS-BBox-Filter liefert Features → korrekte Tupel-Liste.übersp.nie geprüft
TestGemarkungSchluesselbbox
test_fallback_when_bbox_fails
BBox-Filter schlägt fehl → Fallback auf Volllade + client-seitige Filterung.übersp.nie geprüft
TestGemarkungSchluesselbbox
test_both_layers_fail_returns_empty
Beide Lade-Strategien scheitern → leere Liste.übersp.nie geprüft
TestGemarkungSchluesselbbox
test_deduplication_and_sorting
Doppelte Schlüssel werden dedupliziert, Ergebnis ist sortiert.übersp.nie geprüft
TestGemarkungSchluesselbbox
test_feature_without_schluessel_skipped
Feature ohne Schlüssel-Attribut wird übersprungen.übersp.nie geprüft
TestGemarkungSchluesselbbox
test_exception_returns_empty
Exception im Ladevorgang → leere Liste (kein Crash).übersp.nie geprüft
TestGemarkungSchluesselnurNummern
test_returns_only_nummern
— (Docstring fehlt)übersp.nie geprüft
TestGemarkungSchluesselnurNummern
test_empty_input_returns_empty
— (Docstring fehlt)übersp.nie geprüft
TestLadeGemarkungenlayer
test_returns_layer_when_service_reachable
Dienst erreichbar (isValid=True) → Layer-Objekt zurückgegeben.grünnie geprüft
TestLadeGemarkungenlayer
test_returns_none_when_service_unreachable
Dienst nicht erreichbar (isValid=False) → None zurückgegeben.grünnie geprüft

Unit-Tests für `sn_verfahrensgebiet.functions.grenzpunkt_alkis`.

TestExtrahiereGmlIds 5TestGrenzpunktAlkis 7
flowchart TD
  root(["test_grenzpunkt_alkis.py"])
  class root rootnode
  root --> g1["TestExtrahiereGmlIds (5)"]
  class g1 groupnode
  g1 --> t1("xlink_href_format")
  g1 --> t2("plain_gml_id")
  g1 --> t3("empty_value_skipped")
  g1 --> t4("deduplication")
  g1 --> t5("sorted_output")
  root --> g2["TestGrenzpunktAlkis (7)"]
  class g2 groupnode
  g2 --> t6("no_vg_layer_returns_none")
  g2 --> t7("invalid_punktort_layer")
  g2 --> t8("empty_punktort_layer")
  g2 --> t9("no_gml_ids_returns_pta_only")
  g2 --> t10("grenzpunkt_batch_empty")
  g2 --> t11("success_returns_both_layers")
  g2 --> t12("extent_derived_from_vg_layer")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  class t6 ok
  class t7 ok
  class t8 ok
  class t9 warn
  class t10 warn
  class t11 warn
  class t12 warn
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestExtrahiereGmlIds
test_xlink_href_format
URN-Format 'urn:adv:oid:DEABC123' → nur 'DEABC123' extrahiert.grünnie geprüft
TestExtrahiereGmlIds
test_plain_gml_id
Plain-GML-ID ohne Doppelpunkt → direkt übernommen.grünnie geprüft
TestExtrahiereGmlIds
test_empty_value_skipped
Leerer gehoertZu-Wert wird übersprungen.grünnie geprüft
TestExtrahiereGmlIds
test_deduplication
Doppelte Referenzen werden dedupliziert.grünnie geprüft
TestExtrahiereGmlIds
test_sorted_output
Rückgabe ist aufsteigend sortiert.grünnie geprüft
TestGrenzpunktAlkis
test_no_vg_layer_returns_none
— (Docstring fehlt)grünnie geprüft
TestGrenzpunktAlkis
test_invalid_punktort_layer
— (Docstring fehlt)grünnie geprüft
TestGrenzpunktAlkis
test_empty_punktort_layer
— (Docstring fehlt)grünnie geprüft
TestGrenzpunktAlkis
test_no_gml_ids_returns_pta_only
— (Docstring fehlt)rotnie geprüft
TestGrenzpunktAlkis
test_grenzpunkt_batch_empty
— (Docstring fehlt)rotnie geprüft
TestGrenzpunktAlkis
test_success_returns_both_layers
— (Docstring fehlt)rotnie geprüft
TestGrenzpunktAlkis
test_extent_derived_from_vg_layer
Wenn kein extent übergeben → Extent aus VG-Layer holen.rotnie geprüft

Unit-Tests für `sn_verfahrensgebiet.functions.knickpunkt_pruefung`.

TestExtrahiereKnickpunkte 4TestKnickpunktPruefungInputvalidierung 3TestKnickpunktPruefungKlassifizierung 2TestFehlendKnickpunkteViaVerbindungslinien 4
flowchart TD
  root(["test_knickpunkt_pruefung.py"])
  class root rootnode
  root --> g1["TestExtrahiereKnickpunkte (4)"]
  class g1 groupnode
  g1 --> t1("leerer_layer_gibt_leere_liste")
  g1 --> t2("keine_gueltige_geometrie_gibt_leere_liste")
  g1 --> t3("feature_mit_leerer_geometrie_gibt_leere_liste")
  g1 --> t4("qgis_nicht_verfuegbar_gibt_leere_liste")
  root --> g2["TestKnickpunktPruefungInputvalidierung (3)"]
  class g2 groupnode
  g2 --> t5("keine_knickpunkte_gibt_none_zurueck")
  g2 --> t6("kein_punktort_layer_gibt_none_zurueck")
  g2 --> t7("abbruch_via_progress_gibt_none_zurueck")
  root --> g3["TestKnickpunktPruefungKlassifizierung (2)"]
  class g3 groupnode
  g3 --> t8("identischer_punkt_wird_gruen_gezaehlt")
  g3 --> t9("kein_pta_an_knickpunkt_wird_rot_gezaehlt")
  root --> g4["TestFehlendKnickpunkteViaVerbindungslinien (4)"]
  class g4 groupnode
  g4 --> t10("leere_union_gibt_null_zurueck")
  g4 --> t11("weniger_als_zwei_pta_auf_ring_kein_orange")
  g4 --> t12("ungematchter_pta_im_puffer_wird_orange")
  g4 --> t13("ungematchter_pta_ausserhalb_puffer_kein_orange")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  class t6 ok
  class t7 ok
  class t8 ok
  class t9 ok
  class t10 ok
  class t11 ok
  class t12 ok
  class t13 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestExtrahiereKnickpunkte
test_leerer_layer_gibt_leere_liste
— (Docstring fehlt)grünnie geprüft
TestExtrahiereKnickpunkte
test_keine_gueltige_geometrie_gibt_leere_liste
— (Docstring fehlt)grünnie geprüft
TestExtrahiereKnickpunkte
test_feature_mit_leerer_geometrie_gibt_leere_liste
— (Docstring fehlt)grünnie geprüft
TestExtrahiereKnickpunkte
test_qgis_nicht_verfuegbar_gibt_leere_liste
Wenn qgis.core kein QgsPointXY hat (ImportError in Funktion), leere Liste.grünnie geprüft
TestKnickpunktPruefungInputvalidierung
test_keine_knickpunkte_gibt_none_zurueck
— (Docstring fehlt)grünnie geprüft
TestKnickpunktPruefungInputvalidierung
test_kein_punktort_layer_gibt_none_zurueck
— (Docstring fehlt)grünnie geprüft
TestKnickpunktPruefungInputvalidierung
test_abbruch_via_progress_gibt_none_zurueck
— (Docstring fehlt)grünnie geprüft
TestKnickpunktPruefungKlassifizierung
test_identischer_punkt_wird_gruen_gezaehlt
PunktortTA exakt am Knickpunkt → identisch_count == 1.grünnie geprüft
TestKnickpunktPruefungKlassifizierung
test_kein_pta_an_knickpunkt_wird_rot_gezaehlt
Kein PunktortTA am Knickpunkt → kein_pta_count == 1.grünnie geprüft
TestFehlendKnickpunkteViaVerbindungslinien
test_leere_union_gibt_null_zurueck
bror_union.isEmpty() == True → (0, []).grünnie geprüft
TestFehlendKnickpunkteViaVerbindungslinien
test_weniger_als_zwei_pta_auf_ring_kein_orange
Nur 1 gematchter PunktortTA auf Ring → keine fehlenden Knickpunkte.grünnie geprüft
TestFehlendKnickpunkteViaVerbindungslinien
test_ungematchter_pta_im_puffer_wird_orange
Nicht-gematchter PunktortTA innerhalb 3-cm-Puffer → orange gezählt.grünnie geprüft
TestFehlendKnickpunkteViaVerbindungslinien
test_ungematchter_pta_ausserhalb_puffer_kein_orange
Nicht-gematchter PunktortTA außerhalb Puffer → nicht orange gezählt.grünnie geprüft

— (Docstring fehlt)

TestPluginMain 4
flowchart TD
  root(["test_main.py"])
  class root rootnode
  root --> g1["TestPluginMain (4)"]
  class g1 groupnode
  g1 --> t1("init_sets_services_and_names")
  g1 --> t2("initGui_registers_action_when_basis_ui_exists")
  g1 --> t3("run_creates_dock_and_marks_toolbar_active")
  g1 --> t4("unload_removes_dock_and_action")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestPluginMain
test_init_sets_services_and_names
— (Docstring fehlt)grünnie geprüft
TestPluginMain
test_initGui_registers_action_when_basis_ui_exists
— (Docstring fehlt)grünnie geprüft
TestPluginMain
test_run_creates_dock_and_marks_toolbar_active
— (Docstring fehlt)grünnie geprüft
TestPluginMain
test_unload_removes_dock_and_action
— (Docstring fehlt)grünnie geprüft

— (Docstring fehlt)

TestVerfahrensgebietAlkis 8
flowchart TD
  root(["test_verfahrensgebiet_alkis.py"])
  class root rootnode
  root --> g1["TestVerfahrensgebietAlkis (8)"]
  class g1 groupnode
  g1 --> t1("check_existing_layer_first_load")
  g1 --> t2("check_existing_layer_keep_existing")
  g1 --> t3("verfahrensgebiet_alkis_fails_when_verfahrensnummer_missing")
  g1 --> t4("verfahrensgebiet_alkis_fails_on_invalid_wfs_layer")
  g1 --> t5("verfahrensgebiet_alkis_success_single_kombination")
  g1 --> t6("verfahrensgebiet_alkis_multi_kombination_dialog_auswahl")
  g1 --> t7("verfahrensgebiet_alkis_multi_kombination_dialog_abbruch")
  g1 --> t8("verfahrensgebiet_alkis_multi_kombination_mehrfachauswahl")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  class t6 ok
  class t7 ok
  class t8 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestVerfahrensgebietAlkis
test_check_existing_layer_first_load
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietAlkis
test_check_existing_layer_keep_existing
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietAlkis
test_verfahrensgebiet_alkis_fails_when_verfahrensnummer_missing
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietAlkis
test_verfahrensgebiet_alkis_fails_on_invalid_wfs_layer
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietAlkis
test_verfahrensgebiet_alkis_success_single_kombination
Einzelne (adv_name, bezeichnung)-Kombination → kein Dialog, Memory-Layer zurück.grünnie geprüft
TestVerfahrensgebietAlkis
test_verfahrensgebiet_alkis_multi_kombination_dialog_auswahl
Zwei verschiedene Kombinationen → Dialog wird gezeigt, gewählte Features genutzt.grünnie geprüft
TestVerfahrensgebietAlkis
test_verfahrensgebiet_alkis_multi_kombination_dialog_abbruch
Zwei verschiedene Kombinationen → Nutzer bricht Dialog ab → NONE.grünnie geprüft
TestVerfahrensgebietAlkis
test_verfahrensgebiet_alkis_multi_kombination_mehrfachauswahl
Zwei verschiedene Kombinationen → beide ausgewählt → beide Feature-Gruppen genutzt.grünnie geprüft

Unit-Tests für `sn_verfahrensgebiet.functions.verfahrensgebiet_alkis_komplett`.

TestSelectByLocation 3TestFuegeVkzFeldHinzu 3TestFlaechenvergleich 8TestVerfahrensgebietAlkisKomplett 16
flowchart TD
  root(["test_verfahrensgebiet_alkis_komplett.py"])
  class root rootnode
  root --> g1["TestSelectByLocation (3)"]
  class g1 groupnode
  g1 --> t1("processing_not_available_returns_zero")
  g1 --> t2("processing_success_returns_count")
  g1 --> t3("processing_exception_returns_zero")
  root --> g2["TestFuegeVkzFeldHinzu (3)"]
  class g2 groupnode
  g2 --> t4("empty_vkz_does_nothing")
  g2 --> t5("none_vkz_does_nothing")
  g2 --> t6("vkz_field_added")
  root --> g3["TestFlaechenvergleich (8)"]
  class g3 groupnode
  g3 --> t7("gleiche_flaeche_stimmt_ueberein")
  g3 --> t8("verschiedene_flaeche_stimmt_nicht_ueberein")
  g3 --> t9("differenz_innerhalb_toleranz")
  g3 --> t10("differenz_ausserhalb_toleranz")
  g3 --> t11("flaechen_werte_korrekt")
  g3 --> t12("lese_toleranz_default_ist_null")
  g3 --> t13("lese_toleranz_parst_string")
  g3 --> t14("lese_toleranz_ungueltig_fallback_null")
  root --> g4["TestVerfahrensgebietAlkisKomplett (16)"]
  class g4 groupnode
  g4 --> t15("vg_alkis_none_aborts")
  g4 --> t16("flst_none_aborts")
  g4 --> t17("no_selection_returns_none_enriched")
  g4 --> t18("invalid_enriched_layer_returns_none")
  g4 --> t19("progress_cancel_after_step1_returns_none")
  g4 --> t20("success_flaechen_match_zeigt_info")
  g4 --> t21("no_vkz_variable_passes_empty_string")
  g4 --> t22("flaechen_abweichung_abbrechen_kein_detailcheck")
  g4 --> t23("flaechen_abweichung_als_vg_laden")
  g4 --> t24("flaechen_abweichung_detailpruefung_startet_knickpruefung")
  g4 --> t25("bror_layer_bleibt_bei_erfolg_im_projekt")
  g4 --> t26("bror_layer_wird_bei_fehler_entfernt")
  g4 --> t27("kein_vkz_kein_landkreis_dialog_abgebrochen")
  g4 --> t28("kein_vkz_kein_landkreis_dialog_liefert_landkreis")
  g4 --> t29("landkreis_modus_wird_bei_fehlender_vkz_verwendet")
  g4 --> t30("landkreis_modus_nur_laden_ueberspringt_dialog2")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  class t6 ok
  class t7 ok
  class t8 ok
  class t9 ok
  class t10 ok
  class t11 ok
  class t12 ok
  class t13 ok
  class t14 ok
  class t15 ok
  class t16 ok
  class t17 ok
  class t18 ok
  class t19 ok
  class t20 ok
  class t21 ok
  class t22 ok
  class t23 ok
  class t24 ok
  class t25 ok
  class t26 ok
  class t27 ok
  class t28 ok
  class t29 ok
  class t30 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestSelectByLocation
test_processing_not_available_returns_zero
— (Docstring fehlt)grünnie geprüft
TestSelectByLocation
test_processing_success_returns_count
— (Docstring fehlt)grünnie geprüft
TestSelectByLocation
test_processing_exception_returns_zero
— (Docstring fehlt)grünnie geprüft
TestFuegeVkzFeldHinzu
test_empty_vkz_does_nothing
— (Docstring fehlt)grünnie geprüft
TestFuegeVkzFeldHinzu
test_none_vkz_does_nothing
— (Docstring fehlt)grünnie geprüft
TestFuegeVkzFeldHinzu
test_vkz_field_added
— (Docstring fehlt)grünnie geprüft
TestFlaechenvergleich
test_gleiche_flaeche_stimmt_ueberein
— (Docstring fehlt)grünnie geprüft
TestFlaechenvergleich
test_verschiedene_flaeche_stimmt_nicht_ueberein
— (Docstring fehlt)grünnie geprüft
TestFlaechenvergleich
test_differenz_innerhalb_toleranz
— (Docstring fehlt)grünnie geprüft
TestFlaechenvergleich
test_differenz_ausserhalb_toleranz
— (Docstring fehlt)grünnie geprüft
TestFlaechenvergleich
test_flaechen_werte_korrekt
— (Docstring fehlt)grünnie geprüft
TestFlaechenvergleich
test_lese_toleranz_default_ist_null
— (Docstring fehlt)grünnie geprüft
TestFlaechenvergleich
test_lese_toleranz_parst_string
— (Docstring fehlt)grünnie geprüft
TestFlaechenvergleich
test_lese_toleranz_ungueltig_fallback_null
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietAlkisKomplett
test_vg_alkis_none_aborts
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietAlkisKomplett
test_flst_none_aborts
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietAlkisKomplett
test_no_selection_returns_none_enriched
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietAlkisKomplett
test_invalid_enriched_layer_returns_none
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietAlkisKomplett
test_progress_cancel_after_step1_returns_none
Abbruch nach Schritt 1 → sofortiger sauberer Rückgabestatus.grünnie geprüft
TestVerfahrensgebietAlkisKomplett
test_success_flaechen_match_zeigt_info
Flächenübereinstimmung → show_info_dialog mit erwartetem Text.grünnie geprüft
TestVerfahrensgebietAlkisKomplett
test_no_vkz_variable_passes_empty_string
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietAlkisKomplett
test_flaechen_abweichung_abbrechen_kein_detailcheck
Abweichung + Abbrechen → knickpunkt_pruefung wird NICHT aufgerufen.grünnie geprüft
TestVerfahrensgebietAlkisKomplett
test_flaechen_abweichung_als_vg_laden
Abweichung + Als VG laden → BROR-Layer wird umbenannt und alsgrünnie geprüft
TestVerfahrensgebietAlkisKomplett
test_flaechen_abweichung_detailpruefung_startet_knickpruefung
Abweichung + Detailprüfung → lade_punktort_ta + knickpunkt_pruefunggrünnie geprüft
TestVerfahrensgebietAlkisKomplett
test_bror_layer_bleibt_bei_erfolg_im_projekt
Bei Erfolg darf der BROR-Layer NICHT entfernt werden.grünnie geprüft
TestVerfahrensgebietAlkisKomplett
test_bror_layer_wird_bei_fehler_entfernt
Bei Fehler (flst_alkis NONE) wird der BROR-Layer aus dem Projekt entfernt.grünnie geprüft
TestVerfahrensgebietAlkisKomplett
test_kein_vkz_kein_landkreis_dialog_abgebrochen
Weder Verfahrensnummer noch Landkreis gesetzt, Nutzer bricht dengrünnie geprüft
TestVerfahrensgebietAlkisKomplett
test_kein_vkz_kein_landkreis_dialog_liefert_landkreis
Weder Verfahrensnummer noch Landkreis gesetzt, Nutzer wählt einengrünnie geprüft
TestVerfahrensgebietAlkisKomplett
test_landkreis_modus_wird_bei_fehlender_vkz_verwendet
Keine Verfahrensnummer, aber Landkreis gesetzt → Landkreis-Suchpfadgrünnie geprüft
TestVerfahrensgebietAlkisKomplett
test_landkreis_modus_nur_laden_ueberspringt_dialog2
nur_laden=True → Funktion kehrt sofort zurück, Dialog 2 (Gemarkunggrünnie geprüft

Unit-Tests für das Verfahrensgebiet-Edit-Service-Modul.

TestPruefeFlurstueckLayer 3TestPruefeAuswahl 3TestGetKennzeichenMenge 3TestErstelle 3TestErgaenzeVerfahrensgebiet 3TestEntferneAusVerfahrensgebiet 5TestErsetze 1
flowchart TD
  root(["test_verfahrensgebiet_edit_service.py"])
  class root rootnode
  root --> g1["TestPruefeFlurstueckLayer (3)"]
  class g1 groupnode
  g1 --> t1("layer_ok_passes")
  g1 --> t2("layer_missing_field_fails")
  g1 --> t3("layer_wrong_geometry_fails")
  root --> g2["TestPruefeAuswahl (3)"]
  class g2 groupnode
  g2 --> t4("no_selection_fails")
  g2 --> t5("with_selection_passes")
  g2 --> t6("selectedFeatureCount_exception_treated_as_zero")
  root --> g3["TestGetKennzeichenMenge (3)"]
  class g3 groupnode
  g3 --> t7("returns_set_of_ids")
  g3 --> t8("empty_layer_returns_empty_set")
  g3 --> t9("single_kennzeichen_without_comma")
  root --> g4["TestErstelle (3)"]
  class g4 groupnode
  g4 --> t10("success_counts")
  g4 --> t11("partial_failure_on_empty_geometry")
  g4 --> t12("all_fail_on_empty_geometries")
  root --> g5["TestErgaenzeVerfahrensgebiet (3)"]
  class g5 groupnode
  g5 --> t13("adds_only_new_ids")
  g5 --> t14("skip_empty_geometry_counts_as_failed")
  g5 --> t15("all_already_present")
  root --> g6["TestEntferneAusVerfahrensgebiet (5)"]
  class g6 groupnode
  g6 --> t16("removes_present_ids")
  g6 --> t17("counts_ids_not_in_layer")
  g6 --> t18("none_present_in_layer")
  g6 --> t19("empty_selection_removes_nothing")
  g6 --> t20("removes_last_id_deletes_feature")
  root --> g7["TestErsetze (1)"]
  class g7 groupnode
  g7 --> t21("ersetze_delegates_to_erstelle")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  class t6 ok
  class t7 ok
  class t8 ok
  class t9 ok
  class t10 ok
  class t11 ok
  class t12 ok
  class t13 ok
  class t14 ok
  class t15 ok
  class t16 ok
  class t17 ok
  class t18 ok
  class t19 ok
  class t20 ok
  class t21 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestPruefeFlurstueckLayer
test_layer_ok_passes
Gültiger Polygon-Vektor-Layer mit Pflichtfeldern → ok=True.grünnie geprüft
TestPruefeFlurstueckLayer
test_layer_missing_field_fails
Layer ohne Pflichtfelder → ok=False, aktion=felder_fehlen.grünnie geprüft
TestPruefeFlurstueckLayer
test_layer_wrong_geometry_fails
Layer mit falschem Geometrietyp → ok=False, aktion=falscher_geotyp.grünnie geprüft
TestPruefeAuswahl
test_no_selection_fails
— (Docstring fehlt)grünnie geprüft
TestPruefeAuswahl
test_with_selection_passes
— (Docstring fehlt)grünnie geprüft
TestPruefeAuswahl
test_selectedFeatureCount_exception_treated_as_zero
— (Docstring fehlt)grünnie geprüft
TestGetKennzeichenMenge
test_returns_set_of_ids
Kommagetrennte Kennzeichen im Single-Feature werden korrekt geparst.grünnie geprüft
TestGetKennzeichenMenge
test_empty_layer_returns_empty_set
— (Docstring fehlt)grünnie geprüft
TestGetKennzeichenMenge
test_single_kennzeichen_without_comma
Einzelnes Kennzeichen ohne Komma wird korrekt erkannt.grünnie geprüft
TestErstelle
test_success_counts
3 gültige Features → erfolgreich=3, fehlgeschlagen=0, 1 Union-Feature im Layer.grünnie geprüft
TestErstelle
test_partial_failure_on_empty_geometry
2 ok + 1 leere Geometrie → erfolgreich=2, fehlgeschlagen=1.grünnie geprüft
TestErstelle
test_all_fail_on_empty_geometries
Alle Features haben leere Geometrie → erfolgreich=0, kein Feature im Layer.grünnie geprüft
TestErgaenzeVerfahrensgebiet
test_adds_only_new_ids
Auswahl enthält 1 neue + 1 bereits vorhandene ID → hinzugefügt=1.grünnie geprüft
TestErgaenzeVerfahrensgebiet
test_skip_empty_geometry_counts_as_failed
Neue ID mit leerer Geometrie → fehlgeschlagen=1, hinzugefügt=0.grünnie geprüft
TestErgaenzeVerfahrensgebiet
test_all_already_present
Alle ausgewählten IDs bereits vorhanden → bereits_vorhanden=n, hinzugefügt=0.grünnie geprüft
TestEntferneAusVerfahrensgebiet
test_removes_present_ids
Auswahl enthält 1 vorhandene ID → entfernt=1, nicht_enthalten=0.grünnie geprüft
TestEntferneAusVerfahrensgebiet
test_counts_ids_not_in_layer
Auswahl enthält ID, die nicht im Verfahrensgebiet ist → nicht_enthalten=1.grünnie geprüft
TestEntferneAusVerfahrensgebiet
test_none_present_in_layer
Auswahl hat IDs, die alle nicht im Layer sind → entfernt=0, nicht_enthalten=n.grünnie geprüft
TestEntferneAusVerfahrensgebiet
test_empty_selection_removes_nothing
Leere Auswahl → nichts entfernt, nichts nicht_enthalten.grünnie geprüft
TestEntferneAusVerfahrensgebiet
test_removes_last_id_deletes_feature
Wird das letzte Kennzeichen entfernt, wird das Feature gelöscht.grünnie geprüft
TestErsetze
test_ersetze_delegates_to_erstelle
ersetze_verfahrensgebiet gibt dasselbe Ergebnis wie erstelle zurück.grünnie geprüft

Unit-Tests für `sn_verfahrensgebiet.functions.verfahrensgebiet_shape_komplett`.

TestFindShp 4TestErstelleMemoryLayerAusShp 3TestLadeVgAusZip 6TestVerfahrensgebietShapeKomplett 18
flowchart TD
  root(["test_verfahrensgebiet_shape_komplett.py"])
  class root rootnode
  root --> g1["TestFindShp (4)"]
  class g1 groupnode
  g1 --> t1("findet_shp_in_root")
  g1 --> t2("findet_shp_in_unterordner")
  g1 --> t3("kein_shp_gibt_none_zurueck")
  g1 --> t4("case_insensitive_erkennung")
  root --> g2["TestErstelleMemoryLayerAusShp (3)"]
  class g2 groupnode
  g2 --> t5("leere_geometrien_geben_none")
  g2 --> t6("keine_features_gibt_none")
  g2 --> t7("attribute_von_erstem_feature_werden_gesetzt")
  root --> g3["TestLadeVgAusZip (6)"]
  class g3 groupnode
  g3 --> t8("dialog_abgebrochen_gibt_none_zurueck")
  g3 --> t9("zip_fehler_gibt_none_und_warning")
  g3 --> t10("kein_shp_in_zip_gibt_none_und_warning")
  g3 --> t11("invalider_qgslayer_gibt_none_und_warning")
  g3 --> t12("leere_geometrien_geben_none_und_warning")
  g3 --> t13("erfolg_gibt_memory_layer_zurueck")
  root --> g4["TestVerfahrensgebietShapeKomplett (18)"]
  class g4 groupnode
  g4 --> t14("lade_zip_none_aborts")
  g4 --> t15("shape_vg_sofort_ins_projekt_nach_laden")
  g4 --> t16("shape_vg_wird_bei_abbruch_aus_projekt_entfernt")
  g4 --> t17("shape_vg_bleibt_im_projekt_bei_erfolg")
  g4 --> t18("flst_none_aborts")
  g4 --> t19("keine_flurstuecke_selektiert_gibt_warning")
  g4 --> t20("flaechen_uebereinstimmung_gibt_info_und_kein_dialog")
  g4 --> t21("abweichung_abbrechen_gibt_shape_vg_zurueck")
  g4 --> t22("abweichung_detailpruefung_ruft_knickpunkt_pruefung_auf")
  g4 --> t23("punktort_ta_none_gibt_shape_vg_zurueck_und_zeigt_fehler")
  g4 --> t24("temp_layer_wird_stets_entfernt")
  g4 --> t25("bror_layer_ist_stets_none")
  g4 --> t26("bror_geladen_und_zurueckgegeben_wenn_vkz_gesetzt")
  g4 --> t27("bror_wird_vor_shape_vg_ins_projekt_eingefuegt")
  g4 --> t28("bror_wird_bei_abbruch_aus_projekt_entfernt")
  g4 --> t29("verfahrensgebiet_alkis_nicht_aufgerufen_wenn_vkz_leer")
  g4 --> t30("bror_als_erstes_argument_beim_flaechenvergleich")
  g4 --> t31("fallback_auf_temp_enriched_wenn_bror_ladeversagen")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  class t6 ok
  class t7 ok
  class t8 warn
  class t9 warn
  class t10 warn
  class t11 warn
  class t12 warn
  class t13 warn
  class t14 ok
  class t15 warn
  class t16 warn
  class t17 ok
  class t18 ok
  class t19 ok
  class t20 warn
  class t21 warn
  class t22 warn
  class t23 warn
  class t24 ok
  class t25 ok
  class t26 warn
  class t27 warn
  class t28 warn
  class t29 ok
  class t30 warn
  class t31 warn
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestFindShp
test_findet_shp_in_root
— (Docstring fehlt)grünnie geprüft
TestFindShp
test_findet_shp_in_unterordner
— (Docstring fehlt)grünnie geprüft
TestFindShp
test_kein_shp_gibt_none_zurueck
— (Docstring fehlt)grünnie geprüft
TestFindShp
test_case_insensitive_erkennung
— (Docstring fehlt)grünnie geprüft
TestErstelleMemoryLayerAusShp
test_leere_geometrien_geben_none
— (Docstring fehlt)grünnie geprüft
TestErstelleMemoryLayerAusShp
test_keine_features_gibt_none
— (Docstring fehlt)grünnie geprüft
TestErstelleMemoryLayerAusShp
test_attribute_von_erstem_feature_werden_gesetzt
Attributwerte des ersten Features werden auf das Union-Feature übertragen.grünnie geprüft
TestLadeVgAusZip
test_dialog_abgebrochen_gibt_none_zurueck
— (Docstring fehlt)rotnie geprüft
TestLadeVgAusZip
test_zip_fehler_gibt_none_und_warning
— (Docstring fehlt)rotnie geprüft
TestLadeVgAusZip
test_kein_shp_in_zip_gibt_none_und_warning
— (Docstring fehlt)rotnie geprüft
TestLadeVgAusZip
test_invalider_qgslayer_gibt_none_und_warning
— (Docstring fehlt)rotnie geprüft
TestLadeVgAusZip
test_leere_geometrien_geben_none_und_warning
— (Docstring fehlt)rotnie geprüft
TestLadeVgAusZip
test_erfolg_gibt_memory_layer_zurueck
— (Docstring fehlt)rotnie geprüft
TestVerfahrensgebietShapeKomplett
test_lade_zip_none_aborts
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietShapeKomplett
test_shape_vg_sofort_ins_projekt_nach_laden
Shape-VG wird unmittelbar nach dem Laden ins Projekt eingefügt.rotnie geprüft
TestVerfahrensgebietShapeKomplett
test_shape_vg_wird_bei_abbruch_aus_projekt_entfernt
Shape-VG wird bei Fehler/Abbruch aus dem Projekt entfernt.rotnie geprüft
TestVerfahrensgebietShapeKomplett
test_shape_vg_bleibt_im_projekt_bei_erfolg
Bei erfolgreichem Abschluss wird shape_vg NICHT aus dem Projekt entfernt.grünnie geprüft
TestVerfahrensgebietShapeKomplett
test_flst_none_aborts
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietShapeKomplett
test_keine_flurstuecke_selektiert_gibt_warning
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietShapeKomplett
test_flaechen_uebereinstimmung_gibt_info_und_kein_dialog
— (Docstring fehlt)rotnie geprüft
TestVerfahrensgebietShapeKomplett
test_abweichung_abbrechen_gibt_shape_vg_zurueck
— (Docstring fehlt)rotnie geprüft
TestVerfahrensgebietShapeKomplett
test_abweichung_detailpruefung_ruft_knickpunkt_pruefung_auf
— (Docstring fehlt)rotnie geprüft
TestVerfahrensgebietShapeKomplett
test_punktort_ta_none_gibt_shape_vg_zurueck_und_zeigt_fehler
— (Docstring fehlt)rotnie geprüft
TestVerfahrensgebietShapeKomplett
test_temp_layer_wird_stets_entfernt
— (Docstring fehlt)grünnie geprüft
TestVerfahrensgebietShapeKomplett
test_bror_layer_ist_stets_none
Dritter Rückgabewert ist im Shape-Workflow immer None (kein BROR).grünnie geprüft
TestVerfahrensgebietShapeKomplett
test_bror_geladen_und_zurueckgegeben_wenn_vkz_gesetzt
VKZ gesetzt → verfahrensgebiet_alkis aufgerufen, bror_layer zurückgegeben.rotnie geprüft
TestVerfahrensgebietShapeKomplett
test_bror_wird_vor_shape_vg_ins_projekt_eingefuegt
BROR wird VOR shape_vg ins Projekt eingefügt (kein Namenskonflikt).rotnie geprüft
TestVerfahrensgebietShapeKomplett
test_bror_wird_bei_abbruch_aus_projekt_entfernt
BROR und shape_vg werden bei Fehler aus dem Projekt entfernt.rotnie geprüft
TestVerfahrensgebietShapeKomplett
test_verfahrensgebiet_alkis_nicht_aufgerufen_wenn_vkz_leer
Leere VKZ → verfahrensgebiet_alkis wird NICHT aufgerufen.grünnie geprüft
TestVerfahrensgebietShapeKomplett
test_bror_als_erstes_argument_beim_flaechenvergleich
Mit BROR: _vergleiche_flaechen wird (bror, shape_vg, ...) aufgerufen.rotnie geprüft
TestVerfahrensgebietShapeKomplett
test_fallback_auf_temp_enriched_wenn_bror_ladeversagen
BROR-Ladeversagen → Fallback: _vergleiche_flaechen mit shape_vg vs temp_enriched.rotnie geprüft

— (Docstring fehlt)

TestWorkingTab 24TestHandleVerfShape 9
flowchart TD
  root(["test_working_tab.py"])
  class root rootnode
  root --> g1["TestWorkingTab (24)"]
  class g1 groupnode
  g1 --> t1("set_busy_updates_button_state")
  g1 --> t2("on_verf_layer_changed_valid_sets_variable")
  g1 --> t3("on_verf_layer_changed_none_clears_variable")
  g1 --> t4("handle_verf_alkis_success_path")
  g1 --> t5("handle_verf_alkis_failure_clears_layer_var")
  g1 --> t6("handle_flurst_alkis_first_load_uebernimmt_layer")
  g1 --> t7("handle_flurst_aus_gemarkungen_ruft_flurstueck_alkis_ohne_schluessel_abfrage")
  g1 --> t8("handle_flurst_aus_gemarkungen_abbruch_zeigt_keine_zusaetzliche_meldung")
  g1 --> t9("handle_grenz_alkis_success_sets_haken")
  g1 --> t10("handle_grenz_alkis_none_result_sets_no_haken")
  g1 --> t11("handle_flurst_alkis_success_sets_haken_and_style")
  g1 --> t12("handle_flurst_alkis_existing_layer_keep_path")
  g1 --> t13("handle_flurst_alkis_invalid_input_returns_early")
  g1 --> t14("handle_verfahrensgebiet_from_selection_requires_active_layer")
  g1 --> t15("handle_verfahrensgebiet_from_selection_requires_required_fields")
  g1 --> t16("handle_verfahrensgebiet_from_selection_requires_selection")
  g1 --> t17("handle_verfahrensgebiet_from_selection_new_layer_success")
  g1 --> t18("handle_verfahrensgebiet_from_selection_existing_layer_ergaenzen_dispatch")
  g1 --> t19("handle_verfahrensgebiet_from_selection_existing_layer_entfernen_dispatch")
  g1 --> t20("handle_verfahrensgebiet_from_selection_existing_layer_ersetzen_dispatch")
  g1 --> t21("aus_liste_button_shows_not_implemented_hint")
  g1 --> t22("handle_gem_alkis_service_reachable_adds_layer")
  g1 --> t23("handle_gem_alkis_service_unreachable_shows_warning")
  g1 --> t24("handle_gem_alkis_layer_already_exists_shows_info")
  root --> g2["TestHandleVerfShape (9)"]
  class g2 groupnode
  g2 --> t25("status_none_clears_layer_variable")
  g2 --> t26("button_always_re_enabled_on_failure")
  g2 --> t27("verfahrensnummer_nicht_gesetzt_nein_bricht_ab")
  g2 --> t28("verfahrensnummer_nicht_gesetzt_ja_fuehrt_fort")
  g2 --> t29("verfahrensnummer_gesetzt_kein_rueckfrage_dialog")
  g2 --> t30("success_path_applies_style_and_sets_haken")
  g2 --> t31("bror_layer_erhaelt_qml_stil")
  g2 --> t32("enriched_layer_already_in_project_not_added_again")
  g2 --> t33("busy_state_set_during_execution")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 warn
  class t5 ok
  class t6 ok
  class t7 ok
  class t8 ok
  class t9 warn
  class t10 warn
  class t11 ok
  class t12 ok
  class t13 ok
  class t14 ok
  class t15 ok
  class t16 ok
  class t17 ok
  class t18 ok
  class t19 ok
  class t20 ok
  class t21 ok
  class t22 ok
  class t23 ok
  class t24 ok
  class t25 ok
  class t26 ok
  class t27 warn
  class t28 warn
  class t29 ok
  class t30 ok
  class t31 ok
  class t32 ok
  class t33 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestWorkingTab
test_set_busy_updates_button_state
— (Docstring fehlt)grünnie geprüft
TestWorkingTab
test_on_verf_layer_changed_valid_sets_variable
— (Docstring fehlt)grünnie geprüft
TestWorkingTab
test_on_verf_layer_changed_none_clears_variable
— (Docstring fehlt)grünnie geprüft
TestWorkingTab
test_handle_verf_alkis_success_path
verfahrensgebiet_alkis_komplett → 4-Tupel (enriched, flst, bror, FIRST).rotnie geprüft
TestWorkingTab
test_handle_verf_alkis_failure_clears_layer_var
Status NONE → Layer-Variable wird auf '' gesetzt.grünnie 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ünnie 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ünnie 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ünnie geprüft
TestWorkingTab
test_handle_grenz_alkis_success_sets_haken
Grenzpunkte erfolgreich geladen → haken_grenz wird gesetzt.rotnie geprüft
TestWorkingTab
test_handle_grenz_alkis_none_result_sets_no_haken
grenzpunkt_alkis liefert (None, None) → kein Haken.rotnie geprüft
TestWorkingTab
test_handle_flurst_alkis_success_sets_haken_and_style
— (Docstring fehlt)grünnie geprüft
TestWorkingTab
test_handle_flurst_alkis_existing_layer_keep_path
— (Docstring fehlt)grünnie geprüft
TestWorkingTab
test_handle_flurst_alkis_invalid_input_returns_early
Status NONE (z. B. Nutzerabbruch) → kein Layer, kein Haken.grünnie geprüft
TestWorkingTab
test_handle_verfahrensgebiet_from_selection_requires_active_layer
Kein aktiver Layer → warning, kein Layer wird erstellt.grünnie geprüft
TestWorkingTab
test_handle_verfahrensgebiet_from_selection_requires_required_fields
Layer ohne Pflichtfelder → warning, kein Layer wird erstellt.grünnie geprüft
TestWorkingTab
test_handle_verfahrensgebiet_from_selection_requires_selection
Keine Flurstück-Auswahl → warning, kein Layer erstellt.grünnie geprüft
TestWorkingTab
test_handle_verfahrensgebiet_from_selection_new_layer_success
Erstlauf ohne bestehenden Layer → Layer wird erstellt und hinzugefügt.grünnie geprüft
TestWorkingTab
test_handle_verfahrensgebiet_from_selection_existing_layer_ergaenzen_dispatch
Entscheidung 'ergaenzen' → ergaenze_verfahrensgebiet wird aufgerufen.grünnie geprüft
TestWorkingTab
test_handle_verfahrensgebiet_from_selection_existing_layer_entfernen_dispatch
Entscheidung 'entfernen' → entferne_aus_verfahrensgebiet wird aufgerufen.grünnie geprüft
TestWorkingTab
test_handle_verfahrensgebiet_from_selection_existing_layer_ersetzen_dispatch
Entscheidung 'ersetzen' → alter Layer entfernt, neuer hinzugefügt.grünnie geprüft
TestWorkingTab
test_aus_liste_button_shows_not_implemented_hint
— (Docstring fehlt)grünnie geprüft
TestWorkingTab
test_handle_gem_alkis_service_reachable_adds_layer
Dienst erreichbar → Layer ins Projekt, Stil angewendet, Haken gesetzt.grünnie geprüft
TestWorkingTab
test_handle_gem_alkis_service_unreachable_shows_warning
Dienst nicht erreichbar (None) → warning, kein addMapLayer.grünnie geprüft
TestWorkingTab
test_handle_gem_alkis_layer_already_exists_shows_info
Layer 'Gemarkungen' bereits vorhanden → info, kein erneutes Laden.grünnie geprüft
TestHandleVerfShape
test_status_none_clears_layer_variable
Status NONE → Layer-Variable wird auf '' gesetzt.grünnie geprüft
TestHandleVerfShape
test_button_always_re_enabled_on_failure
Button muss nach Status NONE wieder freigegeben sein (finally).grünnie geprüft
TestHandleVerfShape
test_verfahrensnummer_nicht_gesetzt_nein_bricht_ab
Verfahrensnummer leer + Nutzer wählt 'Nein' → Vorgang abgebrochen.rotnie geprüft
TestHandleVerfShape
test_verfahrensnummer_nicht_gesetzt_ja_fuehrt_fort
Verfahrensnummer leer + Nutzer wählt 'Ja' → Pipeline wird aufgerufen.rotnie geprüft
TestHandleVerfShape
test_verfahrensnummer_gesetzt_kein_rueckfrage_dialog
Verfahrensnummer gesetzt → kein ask_yes_no-Dialog.grünnie geprüft
TestHandleVerfShape
test_success_path_applies_style_and_sets_haken
Erfolg → verfahrensgebiet.qml angewendet, haken_verf gesetzt, success aufgerufen.grünnie geprüft
TestHandleVerfShape
test_bror_layer_erhaelt_qml_stil
Wenn bror_layer zurückgegeben → BauRaumOderBodenordnungsrecht.qml angewendet.grünnie geprüft
TestHandleVerfShape
test_enriched_layer_already_in_project_not_added_again
Layer bereits im Projekt → kein erneutes addMapLayer für VG-Layer.grünnie geprüft
TestHandleVerfShape
test_busy_state_set_during_execution
Button wird während der Ausführung auf busy gesetzt.grünnie geprüft

sn_plan41

Fachplugin · Ordner Plugin_SN_Plan41 · 5 Testdateien · 44 Testfälle

— (Docstring fehlt)

TestListenauswerter 4
flowchart TD
  root(["test_listenauswerter.py"])
  class root rootnode
  root --> g1["TestListenauswerter (4)"]
  class g1 groupnode
  g1 --> t1("validate_rows_accepts_valid_row_and_normalizes_provider")
  g1 --> t2("validate_rows_rejects_missing_required_fields")
  g1 --> t3("validate_rows_sets_stildatei_none_on_style_failure")
  g1 --> t4("validate_rows_handles_non_mapping_rows_edge_case")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestListenauswerter
test_validate_rows_accepts_valid_row_and_normalizes_provider
— (Docstring fehlt)grünnie geprüft
TestListenauswerter
test_validate_rows_rejects_missing_required_fields
— (Docstring fehlt)grünnie geprüft
TestListenauswerter
test_validate_rows_sets_stildatei_none_on_style_failure
— (Docstring fehlt)grünnie geprüft
TestListenauswerter
test_validate_rows_handles_non_mapping_rows_edge_case
— (Docstring fehlt)grünnie geprüft

— (Docstring fehlt)

TestTabALogic 9
flowchart TD
  root(["test_tab_a_logic.py"])
  class root rootnode
  root --> g1["TestTabALogic (9)"]
  class g1 groupnode
  g1 --> t1("verfahrens_db_set_and_load_roundtrip")
  g1 --> t2("verfahrens_db_clear")
  g1 --> t3("linkliste_set_and_load_existing_path")
  g1 --> t4("linkliste_load_returns_none_when_file_missing")
  g1 --> t5("resolve_linkliste_empty_uses_standard_and_persists")
  g1 --> t6("resolve_linkliste_returns_none_when_pruefmanager_rejects")
  g1 --> t7("resolve_raumfilter_without_filter_returns_none")
  g1 --> t8("resolve_raumfilter_verfahrensgebiet_uses_layer_lookup")
  g1 --> t9("extract_datenabruf_error_maps_merges_reason_maps")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  class t6 ok
  class t7 ok
  class t8 ok
  class t9 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestTabALogic
test_verfahrens_db_set_and_load_roundtrip
— (Docstring fehlt)grünnie geprüft
TestTabALogic
test_verfahrens_db_clear
— (Docstring fehlt)grünnie geprüft
TestTabALogic
test_linkliste_set_and_load_existing_path
— (Docstring fehlt)grünnie geprüft
TestTabALogic
test_linkliste_load_returns_none_when_file_missing
— (Docstring fehlt)grünnie geprüft
TestTabALogic
test_resolve_linkliste_empty_uses_standard_and_persists
— (Docstring fehlt)grünnie geprüft
TestTabALogic
test_resolve_linkliste_returns_none_when_pruefmanager_rejects
— (Docstring fehlt)grünnie geprüft
TestTabALogic
test_resolve_raumfilter_without_filter_returns_none
— (Docstring fehlt)grünnie geprüft
TestTabALogic
test_resolve_raumfilter_verfahrensgebiet_uses_layer_lookup
— (Docstring fehlt)grünnie geprüft
TestTabALogic
test_extract_datenabruf_error_maps_merges_reason_maps
— (Docstring fehlt)grünnie geprüft

— (Docstring fehlt)

TestTabAPreconditions 3
flowchart TD
  root(["test_tab_a_preconditions.py"])
  class root rootnode
  root --> g1["TestTabAPreconditions (3)"]
  class g1 groupnode
  g1 --> t1("get_verfahrensgebiet_layer_shows_hint_when_layer_id_missing")
  g1 --> t2("get_verfahrensgebiet_layer_shows_hint_when_layer_not_in_project")
  g1 --> t3("pipeline_aborts_and_shows_hint_when_verfahrensgebiet_missing")
  class t1 ok
  class t2 ok
  class t3 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestTabAPreconditions
test_get_verfahrensgebiet_layer_shows_hint_when_layer_id_missing
— (Docstring fehlt)grünnie geprüft
TestTabAPreconditions
test_get_verfahrensgebiet_layer_shows_hint_when_layer_not_in_project
— (Docstring fehlt)grünnie geprüft
TestTabAPreconditions
test_pipeline_aborts_and_shows_hint_when_verfahrensgebiet_missing
— (Docstring fehlt)grünnie geprüft

— (Docstring fehlt)

TestTabAUI 3
flowchart TD
  root(["test_tab_a_ui.py"])
  class root rootnode
  root --> g1["TestTabAUI (3)"]
  class g1 groupnode
  g1 --> t1("tab_a_callbacks_can_be_called_without_crash")
  g1 --> t2("tab_a_raumfilter_callback_persists_value")
  g1 --> t3("set_services_initializes_logic_and_injects_data_grabber")
  class t1 ok
  class t2 ok
  class t3 warn
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestTabAUI
test_tab_a_callbacks_can_be_called_without_crash
— (Docstring fehlt)grünnie geprüft
TestTabAUI
test_tab_a_raumfilter_callback_persists_value
— (Docstring fehlt)grünnie geprüft
TestTabAUI
test_set_services_initializes_logic_and_injects_data_grabber
— (Docstring fehlt)rotnie geprüft

Tests für sn_plan41/modules/vln_api_logic.py

TestVlnApiLogicAvailability 2TestVlnApiLogicCredentials 4TestVlnApiLogicLogin 6TestVlnApiLogicVerfahren 2TestVlnApiLogicVkz 4TestVlnApiLogicLoadP41 3TestVlnApiLogicUpload 4
flowchart TD
  root(["test_vln_api_logic.py"])
  class root rootnode
  root --> g1["TestVlnApiLogicAvailability (2)"]
  class g1 groupnode
  g1 --> t1("is_available_reflects_import_state")
  g1 --> t2("is_available_false_when_vln_karten_missing")
  root --> g2["TestVlnApiLogicCredentials (4)"]
  class g2 groupnode
  g2 --> t3("save_api_key_calls_qsettings")
  g2 --> t4("clear_api_key_calls_remove")
  g2 --> t5("load_stored_credentials_returns_api_key_and_mail")
  g2 --> t6("load_stored_credentials_returns_none_for_empty")
  root --> g3["TestVlnApiLogicLogin (6)"]
  class g3 groupnode
  g3 --> t7("login_sets_client_and_saves_key")
  g3 --> t8("login_raises_runtime_error_without_qgis_modules")
  g3 --> t9("login_propagates_api_error")
  g3 --> t10("logout_clears_client")
  g3 --> t11("is_authenticated_false_after_logout")
  g3 --> t12("handle_session_expired_clears_key_and_client")
  root --> g4["TestVlnApiLogicVerfahren (2)"]
  class g4 groupnode
  g4 --> t13("get_verfahren_raises_when_not_authenticated")
  g4 --> t14("get_verfahren_delegates_to_client")
  root --> g5["TestVlnApiLogicVkz (4)"]
  class g5 groupnode
  g5 --> t15("load_stored_vkz_reads_from_project")
  g5 --> t16("load_stored_vkz_returns_none_for_empty")
  g5 --> t17("save_vkz_writes_to_project")
  g5 --> t18("save_vkz_does_nothing_for_none")
  root --> g6["TestVlnApiLogicLoadP41 (3)"]
  class g6 groupnode
  g6 --> t19("load_p41_raises_without_vln_karten")
  g6 --> t20("load_p41_applies_styles_to_polygon_and_line_layers")
  g6 --> t21("load_p41_no_style_for_point_layer")
  root --> g7["TestVlnApiLogicUpload (4)"]
  class g7 groupnode
  g7 --> t22("upload_returns_error_for_layer_without_api_path")
  g7 --> t23("upload_returns_error_for_none_layer")
  g7 --> t24("upload_returns_false_without_qgis_modules")
  g7 --> t25("upload_calls_save_feature_collection")
  class t1 ok
  class t2 ok
  class t3 ok
  class t4 ok
  class t5 ok
  class t6 ok
  class t7 ok
  class t8 ok
  class t9 ok
  class t10 ok
  class t11 ok
  class t12 ok
  class t13 ok
  class t14 ok
  class t15 ok
  class t16 ok
  class t17 ok
  class t18 ok
  class t19 ok
  class t20 ok
  class t21 ok
  class t22 ok
  class t23 ok
  class t24 ok
  class t25 ok
  classDef rootnode fill:#1f4038,stroke:#16302a,stroke-width:1px,color:#f4f1e8,font-weight:600;
  classDef groupnode fill:#cfe0da,stroke:#5c8a7d,stroke-width:1px,color:#152420;
  classDef ok fill:#dcefdc,stroke:#3f7d4a,stroke-width:1px,color:#1c3a20;
  classDef warn fill:#f6ead9,stroke:#b5722a,stroke-width:1px,color:#4a2c08;
  classDef skip fill:#e6e6ee,stroke:#6f7285,stroke-width:1px,color:#2b2d38;
TestfallprüftStatusgeprüft
TestVlnApiLogicAvailability
test_is_available_reflects_import_state
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicAvailability
test_is_available_false_when_vln_karten_missing
Wenn VLN_KARTEN_AVAILABLE=False, liefert is_available() False.grünnie geprüft
TestVlnApiLogicCredentials
test_save_api_key_calls_qsettings
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicCredentials
test_clear_api_key_calls_remove
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicCredentials
test_load_stored_credentials_returns_api_key_and_mail
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicCredentials
test_load_stored_credentials_returns_none_for_empty
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicLogin
test_login_sets_client_and_saves_key
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicLogin
test_login_raises_runtime_error_without_qgis_modules
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicLogin
test_login_propagates_api_error
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicLogin
test_logout_clears_client
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicLogin
test_is_authenticated_false_after_logout
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicLogin
test_handle_session_expired_clears_key_and_client
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicVerfahren
test_get_verfahren_raises_when_not_authenticated
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicVerfahren
test_get_verfahren_delegates_to_client
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicVkz
test_load_stored_vkz_reads_from_project
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicVkz
test_load_stored_vkz_returns_none_for_empty
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicVkz
test_save_vkz_writes_to_project
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicVkz
test_save_vkz_does_nothing_for_none
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicLoadP41
test_load_p41_raises_without_vln_karten
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicLoadP41
test_load_p41_applies_styles_to_polygon_and_line_layers
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicLoadP41
test_load_p41_no_style_for_point_layer
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicUpload
test_upload_returns_error_for_layer_without_api_path
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicUpload
test_upload_returns_error_for_none_layer
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicUpload
test_upload_returns_false_without_qgis_modules
— (Docstring fehlt)grünnie geprüft
TestVlnApiLogicUpload
test_upload_calls_save_feature_collection
— (Docstring fehlt)grünnie geprüft