— (Docstring fehlt)
Keine Testfälle: Die Datei enthält keine unittest.TestCase-Klasse – sie ist eine reine Hilfsdatei, die beim Testlauf nur importiert wird.
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)
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;| 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 |
— (Docstring fehlt)
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;| Testfall | prüft | Status | geprüft |
|---|---|---|---|
| TestDateipruefer test_leereingabe_erlaubt | — (Docstring fehlt) | grün | nie geprüft |
| TestDateipruefer test_leereingabe_nicht_erlaubt | — (Docstring fehlt) | grün | nie geprüft |
| TestDateipruefer test_standarddatei_vorschlagen | — (Docstring fehlt) | grün | nie geprüft |
| TestDateipruefer test_temporaer_erlaubt | — (Docstring fehlt) | grün | nie geprüft |
| TestDateipruefer test_datei_nicht_gefunden | — (Docstring fehlt) | grün | nie geprüft |
| TestDateipruefer test_datei_ok | — (Docstring fehlt) | grün | nie geprüft |
Unit-Tests für `sn_basis.functions.laenderkennung`.
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;| Testfall | prüft | Status | geprüft |
|---|---|---|---|
| TestGetLaenderkennung test_bekannter_praefix_gibt_kennung_zurueck | — (Docstring fehlt) | grün | nie geprüft |
| TestGetLaenderkennung test_praefix_gross_klein_unabhaengig | — (Docstring fehlt) | grün | nie geprüft |
| TestGetLaenderkennung test_unbekannter_praefix_wirft_keyerror | — (Docstring fehlt) | grün | nie geprüft |
| TestGetLaenderkennung test_ohne_argument_wird_aus_aufrufendem_modul_abgeleitet | — (Docstring fehlt) | grün | nie geprüft |
| TestGetLaenderkennung test_mapping_enthaelt_sachsen | — (Docstring fehlt) | grün | nie geprüft |
— (Docstring fehlt)
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;| Testfall | prüft | Status | geprüft |
|---|---|---|---|
| TestLayerpruefer test_layer_exists | — (Docstring fehlt) | grün | nie geprüft |
| TestLayerpruefer test_layer_unsichtbar | — (Docstring fehlt) | grün | nie geprüft |
| TestLayerpruefer test_falscher_layertyp | — (Docstring fehlt) | grün | nie geprüft |
| TestLayerpruefer test_falscher_geotyp | — (Docstring fehlt) | grün | nie geprüft |
| TestLayerpruefer test_layer_leer | — (Docstring fehlt) | grün | nie geprüft |
| TestLayerpruefer test_falsches_crs | — (Docstring fehlt) | grün | nie geprüft |
| TestLayerpruefer test_felder_fehlen | — (Docstring fehlt) | grün | nie geprüft |
| TestLayerpruefer test_datenquelle_unerwartet | — (Docstring fehlt) | grün | nie geprüft |
| TestLayerpruefer test_layer_nicht_editierbar | — (Docstring fehlt) | grün | nie geprüft |
| TestLayerpruefer test_layer_ok | — (Docstring fehlt) | grün | nie geprüft |
— (Docstring fehlt)
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;| Testfall | prüft | Status | geprüft |
|---|---|---|---|
| TestLinkpruefer test_remote_link_ok | — (Docstring fehlt) | grün | nie geprüft |
| TestLinkpruefer test_remote_link_error | — (Docstring fehlt) | grün | nie geprüft |
| TestLinkpruefer test_remote_link_network_error | — (Docstring fehlt) | grün | nie geprüft |
| TestLinkpruefer test_local_link_not_found | — (Docstring fehlt) | grün | nie geprüft |
| TestLinkpruefer test_local_link_ok | — (Docstring fehlt) | grün | nie geprüft |
— (Docstring fehlt)
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;| Testfall | prüft | Status | geprüft |
|---|---|---|---|
| TestPrintLayout test_create_legend_item_links_map_and_enables_map_filtering | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLayout test_create_legend_item_does_not_copy_project_layers_into_legend_model | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLayout test_configure_legend_size_uses_content_adaptive_size | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLayout test_configure_hauptkarte_grids_uses_wrapper_constants | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLayout test_create_single_page_layout_keeps_legend_linked_to_hauptkarte_and_theme | — (Docstring fehlt) | grün | nie geprüft |
— (Docstring fehlt)
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;| Testfall | prüft | Status | geprüft |
|---|---|---|---|
| TestPrintLogic test_get_baufreigabe_page_dimensions_prefers_a4_for_small_extent | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLogic test_get_baufreigabe_page_dimensions_escalates_to_a3 | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLogic test_get_baufreigabe_page_dimensions_respects_a4_as_maximum_with_fallback | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLogic test_get_baufreigabe_page_dimensions_falls_back_to_a3_for_oversize_extent | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLogic test_select_standard_page_layout_uses_a4_as_minimum_sheet | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLogic test_select_standard_page_layout_limits_hauptkarte_to_a3 | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLogic test_select_standard_page_layout_returns_none_if_a3_is_too_small | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLogic test_get_standard_layout_dimensions_uses_a4_and_forces_fit_for_small_extent | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLogic test_get_standard_layout_dimensions_caps_endlosrolle_width_at_2000_mm | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLogic test_apply_standard_minimum_a4_fallback_for_small_page | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLogic test_apply_standard_minimum_a4_fallback_keeps_large_page | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLogic test_does_plot_fit_page_true_for_standard_a4 | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLogic test_does_plot_fit_page_false_if_objects_exceed_page | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLogic test_set_druckbereich_accepts_wie_kartenfenster | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLogic test_get_canvas_extent_returns_valid_extent | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLogic test_resolve_extent_uses_canvas_extent_without_buffer | — (Docstring fehlt) | grün | nie geprüft |
| TestPrintLogic test_resolve_extent_uses_rectangle_extent_without_buffer | — (Docstring fehlt) | grün | nie geprüft |
— (Docstring fehlt)
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;| Testfall | prüft | Status | geprüft |
|---|---|---|---|
| TestPruefmanager test_ok | — (Docstring fehlt) | grün | nie geprüft |
| TestPruefmanager test_leereingabe_erlaubt_ja | — (Docstring fehlt) | grün | nie geprüft |
| TestPruefmanager test_leereingabe_erlaubt_nein | — (Docstring fehlt) | grün | nie geprüft |
| TestPruefmanager test_standarddatei_vorschlagen_ja | — (Docstring fehlt) | grün | nie geprüft |
| TestPruefmanager test_standarddatei_vorschlagen_nein | — (Docstring fehlt) | grün | nie geprüft |
| TestPruefmanager test_temporaer_erlaubt_ja | — (Docstring fehlt) | grün | nie geprüft |
| TestPruefmanager test_temporaer_erlaubt_nein | — (Docstring fehlt) | grün | nie geprüft |
| TestPruefmanager test_layer_unsichtbar_ja | — (Docstring fehlt) | grün | nie geprüft |
| TestPruefmanager test_layer_unsichtbar_nein | — (Docstring fehlt) | grün | nie geprüft |
| TestPruefmanager test_unbekannte_aktion | — (Docstring fehlt) | grün | nie geprüft |
| TestPruefmanager test_datei_existiert_overwrite | — (Docstring fehlt) | grün | nie geprüft |
| TestPruefmanager test_datei_existiert_append | — (Docstring fehlt) | grün | nie geprüft |
| TestPruefmanager test_datei_existiert_cancel | — (Docstring fehlt) | grün | nie geprüft |
| TestPruefmanager test_datei_existiert_in_non_qgis_mode_returns_input | — (Docstring fehlt) | grün | nie geprüft |
— (Docstring fehlt)
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;| Testfall | prüft | Status | geprüft |
|---|---|---|---|
| TestSettingsLogic test_load | — (Docstring fehlt) | grün | nie geprüft |
| TestSettingsLogic test_save | — (Docstring fehlt) | grün | nie geprüft |
| TestSettingsLogic test_load_handles_partial_values_with_empty_fallback | — (Docstring fehlt) | grün | nie geprüft |
| TestSettingsLogic test_save_empty_string_value_is_persisted | — (Docstring fehlt) | grün | nie geprüft |
— (Docstring fehlt)
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;| Testfall | prüft | Status | geprüft |
|---|---|---|---|
| TestStilpruefer test_keine_datei_angegeben | — (Docstring fehlt) | grün | nie geprüft |
| TestStilpruefer test_datei_existiert_mit_qml | — (Docstring fehlt) | grün | nie geprüft |
| TestStilpruefer test_datei_existiert_falsche_endung | — (Docstring fehlt) | grün | nie geprüft |
| TestStilpruefer test_datei_existiert_nicht | — (Docstring fehlt) | grün | nie geprüft |
Unit-Tests für `sn_basis.functions.text_wrapper`.
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;| 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 |
— (Docstring fehlt)
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;| Testfall | prüft | Status | geprüft |
|---|---|---|---|
| TestVariableWrapper test_set_variable_project_noop_write_is_skipped | — (Docstring fehlt) | grün | nie geprüft |
| TestVariableWrapper test_set_variable_project_changed_value_is_written | — (Docstring fehlt) | grün | nie geprüft |
| TestVariableWrapper test_set_variable_global_writes_prefixed_name | — (Docstring fehlt) | grün | nie geprüft |
| TestVariableWrapper test_get_variable_global_returns_empty_string_fallback | — (Docstring fehlt) | grün | nie geprüft |
| TestVariableWrapper test_get_variable_invalid_scope_raises | — (Docstring fehlt) | grün | nie geprüft |
| TestVariableWrapper test_set_variable_invalid_scope_raises | — (Docstring fehlt) | grün | nie geprüft |
— (Docstring fehlt)
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;| Testfall | prüft | Status | geprüft |
|---|---|---|---|
| TestVerfahrensgebietManager test_get_verfahrensgebiet_layer_id_returns_value | — (Docstring fehlt) | grün | nie geprüft |
| TestVerfahrensgebietManager test_get_verfahrensgebiet_layer_id_returns_none_for_empty_value | — (Docstring fehlt) | grün | nie geprüft |
| TestVerfahrensgebietManager test_set_verfahrensgebiet_layer_id_writes_project_variable | — (Docstring fehlt) | grün | nie geprüft |
| TestVerfahrensgebietManager test_update_without_layer_does_not_write_when_already_empty | — (Docstring fehlt) | grün | nie geprüft |
| TestVerfahrensgebietManager test_update_with_layer_writes_variable | — (Docstring fehlt) | grün | nie geprüft |
Fachplugin · Ordner Plugin_SN_Verfahrensgebiet · 12 Testdateien · 208 Testfälle
Unit-Tests für `sn_verfahrensgebiet.functions.beteiligung_pruefung`.
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;| 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 |
— (Docstring fehlt)
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;| 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 |
Unit-Tests für das flurstueck_alkis-Modul.
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;| Testfall | prüft | Status | geprüft |
|---|---|---|---|
| TestFlurstueckAlkis test_user_cancel_returns_none | ask_text → ok=False, text="" → (None, NONE). | grün | nie geprüft |
| TestFlurstueckAlkis test_empty_text_after_confirmation_returns_none | ask_text → ok=True, aber Text leer → (None, NONE). | grün | nie geprüft |
| TestFlurstueckAlkis test_invalid_wfs_layer_returns_none | WFS-Layer nicht valide → (None, NONE). | grün | nie geprüft |
| TestFlurstueckAlkis test_success_returns_layer_and_first_status | Kein bestehender Layer, WFS valide → (layer, FIRST). | rot | nie geprüft |
| TestFlurstueckAlkis test_sql_filter_contains_all_schluessel | Der WFS-URI enthält alle eingegebenen Gemarkungsschlüssel. | rot | nie geprüft |
| TestFlurstueckAlkis test_existing_layer_reload_yes | Bestehender Layer + Nutzer: 'Ja, neu laden' → LoadStatus.RELOAD. | rot | nie geprüft |
| TestFlurstueckAlkis test_existing_layer_keep_no | Bestehender Layer + Nutzer: 'Nein, behalten' → LoadStatus.KEEP. | rot | nie geprüft |
| TestFlurstueckAlkis test_vorgabe_schluessel_prefills_default_text | vorgabe_schluessel=['1234','5678'] → ask_text erhält '1234, 5678' als default_text. | rot | nie geprüft |
| TestFlurstueckAlkis test_vorgabe_namen_appears_in_label | vorgabe_namen=['Musterstadt'] → ask_text-label enthält den Namen. | rot | nie geprüft |
| TestFlurstueckAlkis test_bbox_embedded_in_wfs_uri | bbox-Parameter → WFS-URI enthält 'bbox=' Substring. | rot | nie geprüft |
| TestFlurstueckAlkis test_backwards_compatible_no_new_params | flurstueck_alkis(tab) ohne neue Parameter → kein Fehler. | rot | nie geprüft |
| TestFlurstueckAlkis test_ohne_schluessel_abfrage_ueberspringt_ask_text | ohne_schluessel_abfrage=True verwendet vorgabe_schluessel direkt, ohne ask_text aufzurufen. | 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 |
Unit-Tests für `sn_verfahrensgebiet.functions.gemarkung_alkis`.
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;| Testfall | prüft | Status | geprüft |
|---|---|---|---|
| TestExtractSchluesselUndName test_standard_attribute | — (Docstring fehlt) | rot | nie geprüft |
| TestExtractSchluesselUndName test_fallback_attribute | — (Docstring fehlt) | rot | 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. | ü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ün | nie geprüft |
| TestLadeGemarkungenlayer test_returns_none_when_service_unreachable | Dienst nicht erreichbar (isValid=False) → None zurückgegeben. | grün | nie geprüft |
Unit-Tests für `sn_verfahrensgebiet.functions.grenzpunkt_alkis`.
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;| 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 | nie geprüft |
| TestGrenzpunktAlkis test_grenzpunkt_batch_empty | — (Docstring fehlt) | rot | nie geprüft |
| TestGrenzpunktAlkis test_success_returns_both_layers | — (Docstring fehlt) | rot | nie geprüft |
| TestGrenzpunktAlkis test_extent_derived_from_vg_layer | Wenn kein extent übergeben → Extent aus VG-Layer holen. | rot | nie geprüft |
Unit-Tests für `sn_verfahrensgebiet.functions.knickpunkt_pruefung`.
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;| 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 |
— (Docstring fehlt)
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;| 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 |
— (Docstring fehlt)
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;| 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 |
Unit-Tests für `sn_verfahrensgebiet.functions.verfahrensgebiet_alkis_komplett`.
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;| 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 |
Unit-Tests für das Verfahrensgebiet-Edit-Service-Modul.
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;| 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 |
Unit-Tests für `sn_verfahrensgebiet.functions.verfahrensgebiet_shape_komplett`.
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;| 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 | nie geprüft |
| TestLadeVgAusZip test_zip_fehler_gibt_none_und_warning | — (Docstring fehlt) | rot | nie geprüft |
| TestLadeVgAusZip test_kein_shp_in_zip_gibt_none_und_warning | — (Docstring fehlt) | rot | nie geprüft |
| TestLadeVgAusZip test_invalider_qgslayer_gibt_none_und_warning | — (Docstring fehlt) | rot | nie geprüft |
| TestLadeVgAusZip test_leere_geometrien_geben_none_und_warning | — (Docstring fehlt) | rot | nie geprüft |
| TestLadeVgAusZip test_erfolg_gibt_memory_layer_zurueck | — (Docstring fehlt) | rot | 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 | nie geprüft |
| TestVerfahrensgebietShapeKomplett test_shape_vg_wird_bei_abbruch_aus_projekt_entfernt | Shape-VG wird bei Fehler/Abbruch aus dem Projekt entfernt. | rot | 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 | nie geprüft |
| TestVerfahrensgebietShapeKomplett test_abweichung_abbrechen_gibt_shape_vg_zurueck | — (Docstring fehlt) | rot | nie geprüft |
| TestVerfahrensgebietShapeKomplett test_abweichung_detailpruefung_ruft_knickpunkt_pruefung_auf | — (Docstring fehlt) | rot | nie geprüft |
| TestVerfahrensgebietShapeKomplett test_punktort_ta_none_gibt_shape_vg_zurueck_und_zeigt_fehler | — (Docstring fehlt) | rot | 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 | 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 | nie geprüft |
| TestVerfahrensgebietShapeKomplett test_bror_wird_bei_abbruch_aus_projekt_entfernt | BROR und shape_vg werden bei Fehler aus dem Projekt entfernt. | rot | 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 | nie geprüft |
| TestVerfahrensgebietShapeKomplett test_fallback_auf_temp_enriched_wenn_bror_ladeversagen | BROR-Ladeversagen → Fallback: _vergleiche_flaechen mit shape_vg vs temp_enriched. | rot | nie geprüft |
— (Docstring fehlt)
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;| 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 | 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 | nie geprüft |
| TestWorkingTab test_handle_grenz_alkis_none_result_sets_no_haken | grenzpunkt_alkis liefert (None, None) → kein Haken. | rot | 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 | nie geprüft |
| TestHandleVerfShape test_verfahrensnummer_nicht_gesetzt_ja_fuehrt_fort | Verfahrensnummer leer + Nutzer wählt 'Ja' → Pipeline wird aufgerufen. | rot | 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 |
Fachplugin · Ordner Plugin_SN_Plan41 · 5 Testdateien · 44 Testfälle
— (Docstring fehlt)
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;| 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 |
— (Docstring fehlt)
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;| 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 |
— (Docstring fehlt)
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;| 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 |
— (Docstring fehlt)
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;| 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 | nie geprüft |
Tests für sn_plan41/modules/vln_api_logic.py
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;| 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 |