Test-Audit sn_basis fortgesetzt: qgiscore_wrapper.py fachlich geprüft (#76)

17 Testfälle nach Freigabe als geprüft markiert: test_qgiscore_wrapper_helpers.py komplett
(14 bestehende, davon 2 geschärft, und 3 neue für den Rückfall aus boundary() und den
Pufferlayer ohne Features). Nebenbefunde (veralteter Docstring von polygon_zu_linie,
Puffer in Layer-Einheiten statt Metern, offene SQLite-Verbindung in layer_exists_in_gpkg)
als Issue-Entwürfe vorbereitet.

Testkatalog neu erzeugt. Er enthält jetzt auch die mit #56 nach unstable gemergten Tests
von sn_verfahrensgebiet (208 -> 289 Testfälle).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-26 20:01:52 +01:00
co-authored by Claude Opus 5.5
parent dd1395ba2c
commit e9549a1d88
3 changed files with 578 additions and 67 deletions
+68
View File
@@ -871,6 +871,74 @@
"datum": "2026-09-29", "datum": "2026-09-29",
"hash": "460a969e39b6" "hash": "460a969e39b6"
}, },
"sn_basis.tests.test_qgiscore_wrapper_helpers.CreateBufferLayerTests.test_fehlender_source_layer_liefert_none": {
"datum": "2026-10-26",
"hash": "0437058555fc"
},
"sn_basis.tests.test_qgiscore_wrapper_helpers.CreateBufferLayerTests.test_ohne_qgis_liefert_none": {
"datum": "2026-10-26",
"hash": "aacec7c8fedc"
},
"sn_basis.tests.test_qgiscore_wrapper_helpers.CreateBufferLayerTests.test_source_layer_ohne_features_liefert_none": {
"datum": "2026-10-26",
"hash": "f6e8c26394be"
},
"sn_basis.tests.test_qgiscore_wrapper_helpers.CreateBufferLayerTests.test_source_layer_ohne_getfeatures_liefert_none": {
"datum": "2026-10-26",
"hash": "dd0b1dc5b32b"
},
"sn_basis.tests.test_qgiscore_wrapper_helpers.LayerExistsInGpkgTests.test_fehlende_datei_liefert_false": {
"datum": "2026-10-26",
"hash": "2e1e597d4c53"
},
"sn_basis.tests.test_qgiscore_wrapper_helpers.LayerExistsInGpkgTests.test_fehlender_layer_liefert_false": {
"datum": "2026-10-26",
"hash": "7e78d31b7278"
},
"sn_basis.tests.test_qgiscore_wrapper_helpers.LayerExistsInGpkgTests.test_leerer_pfad_oder_layername_liefert_false": {
"datum": "2026-10-26",
"hash": "991e06c4e4e2"
},
"sn_basis.tests.test_qgiscore_wrapper_helpers.LayerExistsInGpkgTests.test_vorhandener_layer_liefert_true": {
"datum": "2026-10-26",
"hash": "e53d9d9c2902"
},
"sn_basis.tests.test_qgiscore_wrapper_helpers.PolygonZuLinieTests.test_alle_stufen_scheitern_liefert_none": {
"datum": "2026-10-26",
"hash": "3fa874686038"
},
"sn_basis.tests.test_qgiscore_wrapper_helpers.PolygonZuLinieTests.test_leere_geometrie_liefert_none": {
"datum": "2026-10-26",
"hash": "65f99d410a16"
},
"sn_basis.tests.test_qgiscore_wrapper_helpers.PolygonZuLinieTests.test_none_liefert_none": {
"datum": "2026-10-26",
"hash": "8e1ee7e61fc0"
},
"sn_basis.tests.test_qgiscore_wrapper_helpers.PolygonZuLinieTests.test_stufe1_fehler_faellt_auf_stufe2_zurueck": {
"datum": "2026-10-26",
"hash": "00c286efe15d"
},
"sn_basis.tests.test_qgiscore_wrapper_helpers.PolygonZuLinieTests.test_stufe1_leerer_umring_faellt_auf_stufe2_zurueck": {
"datum": "2026-10-26",
"hash": "0fd937b2fc3b"
},
"sn_basis.tests.test_qgiscore_wrapper_helpers.PolygonZuLinieTests.test_stufe1_nutzt_boundary_wenn_vorhanden": {
"datum": "2026-10-26",
"hash": "0944f7ee4c4d"
},
"sn_basis.tests.test_qgiscore_wrapper_helpers.PolygonZuLinieTests.test_stufe2_extrahiert_alle_ringe_bei_multipolygon": {
"datum": "2026-10-26",
"hash": "69ed8f638d70"
},
"sn_basis.tests.test_qgiscore_wrapper_helpers.PolygonZuLinieTests.test_stufe2_extrahiert_ringe_bei_einfachem_polygon": {
"datum": "2026-10-26",
"hash": "8dab48ab2885"
},
"sn_basis.tests.test_qgiscore_wrapper_helpers.PolygonZuLinieTests.test_stufe3_fallback_wenn_keine_ringe_extrahierbar": {
"datum": "2026-10-26",
"hash": "31469cdffcd8"
},
"sn_basis.tests.test_settings_logic.TestSettingsLogic.test_load": { "sn_basis.tests.test_settings_logic.TestSettingsLogic.test_load": {
"datum": "2026-09-17", "datum": "2026-09-17",
"hash": "f14c558bc597" "hash": "f14c558bc597"
File diff suppressed because one or more lines are too long
+225 -32
View File
@@ -8,21 +8,21 @@ für die fachliche Frage, ob die Abdeckung sinnvoll ist. Die Angaben stammen aus
selbst (Docstrings) und aus der Testbaseline. selbst (Docstrings) und aus der Testbaseline.
Stand der Baseline: `docs/status/testbaseline.json` (SHA-256 `aeabc946a7f3`) Stand der Baseline: `docs/status/testbaseline.json` (SHA-256 `aeabc946a7f3`)
Stand des Prüf-Audits: `docs/status/testpruefungen.json` (SHA-256 `d8a74fea7cc6`) Stand des Prüf-Audits: `docs/status/testpruefungen.json` (SHA-256 `b2525df27b91`)
Gesamt: 3 Pakete, 49 Testdateien, 605 Testfälle – 562 grün, 35 rot (Baseline), 8 übersprungen. Gesamt: 3 Pakete, 55 Testdateien, 689 Testfälle – 646 grün, 35 rot (Baseline), 8 übersprungen.
Mit Beschreibung (Docstring): 460 von 605 (76 %). Mit Beschreibung (Docstring): 544 von 689 (79 %).
Fachlich geprüft: 227 von 605 (38 %) aktuell, 0 veraltet seit Codeänderung, 378 nie geprüft. Fachlich geprüft: 244 von 689 (35 %) aktuell, 0 veraltet seit Codeänderung, 445 nie geprüft.
Strukturelle Lücken (heuristisch, Namensabgleich): 143 von 413 (35 %) Funktionen/Methoden ohne erkennbaren Testbezug – Abschnitt „Ungetestete Funktionen“. Strukturelle Lücken (heuristisch, Namensabgleich): 160 von 470 (34 %) Funktionen/Methoden ohne erkennbaren Testbezug – Abschnitt „Ungetestete Funktionen“.
## Zusammenfassung ## Zusammenfassung
| Paket | Testdateien | Testfälle | grün | rot (Baseline) | übersprungen | mit Beschreibung | fachlich geprüft | ohne Testbezug | | Paket | Testdateien | Testfälle | grün | rot (Baseline) | übersprungen | mit Beschreibung | fachlich geprüft | ohne Testbezug |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| `sn_basis` | 32 | 353 | 353 | 0 | 0 | 353 von 353 (100 %) | 227 von 353 (64 %) | 70 von 229 (31 %) | | `sn_basis` | 32 | 356 | 356 | 0 | 0 | 356 von 356 (100 %) | 244 von 356 (69 %) | 70 von 229 (31 %) |
| `sn_verfahrensgebiet` | 12 | 208 | 166 | 34 | 8 | 106 von 208 (51 %) | 0 von 208 (0 %) | 34 von 104 (33 %) | | `sn_verfahrensgebiet` | 18 | 289 | 247 | 34 | 8 | 187 von 289 (65 %) | 0 von 289 (0 %) | 51 von 161 (32 %) |
| `sn_plan41` | 5 | 44 | 43 | 1 | 0 | 1 von 44 (2 %) | 0 von 44 (0 %) | 39 von 80 (49 %) | | `sn_plan41` | 5 | 44 | 43 | 1 | 0 | 1 von 44 (2 %) | 0 von 44 (0 %) | 39 von 80 (49 %) |
| **Summe** | **49** | **605** | **562** | **35** | **8** | **460 von 605 (76 %)** | **227 von 605 (38 %)** | **143 von 413 (35 %)** | | **Summe** | **55** | **689** | **646** | **35** | **8** | **544 von 689 (79 %)** | **244 von 689 (35 %)** | **160 von 470 (34 %)** |
### Legende ### Legende
@@ -36,7 +36,7 @@ Strukturelle Lücken (heuristisch, Namensabgleich): 143 von 413 (35 %) Funktione
## Paket `sn_basis` ## Paket `sn_basis`
Plattform-Plugin, Ordner `Plugin_SN_Basis` – 32 Testdateien mit 353 Testfällen (353 grün, 0 rot, 0 übersprungen). Plattform-Plugin, Ordner `Plugin_SN_Basis` – 32 Testdateien mit 356 Testfällen (356 grün, 0 rot, 0 übersprungen).
### `Plugin_SN_Basis/tests/test_base_dockwidget.py` ### `Plugin_SN_Basis/tests/test_base_dockwidget.py`
@@ -612,26 +612,29 @@ Worum es in der Datei geht: Tests für sn_basis/functions/qgiscore_wrapper.py::p
Testgruppen: Testgruppen:
- `PolygonZuLinieTests` (7 Testfälle): — (Docstring fehlt) - `PolygonZuLinieTests` (9 Testfälle): — (Docstring fehlt)
- `LayerExistsInGpkgTests` (4 Testfälle): — (Docstring fehlt) - `LayerExistsInGpkgTests` (4 Testfälle): — (Docstring fehlt)
- `CreateBufferLayerTests` (3 Testfälle): Deckt nur die Wächter ab: die eigentliche Pufferbildung importiert `qgis.core.QgsFeature` - `CreateBufferLayerTests` (4 Testfälle): Deckt nur die Wächter ab: die eigentliche Pufferbildung importiert `qgis.core.QgsFeature`
| Testfall | prüft | Status | geprüft | | Testfall | prüft | Status | geprüft |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| `PolygonZuLinieTests.test_none_liefert_none` | Prüft, dass polygon_zu_linie für None-Eingabe None liefert. | grün | nie geprüft | | `PolygonZuLinieTests.test_none_liefert_none` | Prüft, dass polygon_zu_linie für None-Eingabe None liefert. | grün | geprüft am 2026-10-26 |
| `PolygonZuLinieTests.test_leere_geometrie_liefert_none` | Prüft, dass eine leere Geometrie None liefert. | grün | nie geprüft | | `PolygonZuLinieTests.test_leere_geometrie_liefert_none` | Prüft, dass eine leere Geometrie None liefert. | grün | geprüft am 2026-10-26 |
| `PolygonZuLinieTests.test_stufe1_nutzt_boundary_wenn_vorhanden` | Prüft, dass eine Geometrie mit boundary() (QGIS 3.x-Pfad) deren Ergebnis direkt liefert. | grün | nie geprüft | | `PolygonZuLinieTests.test_stufe1_nutzt_boundary_wenn_vorhanden` | Prüft, dass eine Geometrie mit boundary() (QGIS 3.x-Pfad) deren Ergebnis direkt liefert. | grün | geprüft am 2026-10-26 |
| `PolygonZuLinieTests.test_stufe2_extrahiert_ringe_bei_einfachem_polygon` | Prüft, dass ohne boundary() die Ringe eines einfachen Polygons manuell extrahiert werden. | grün | nie geprüft | | `PolygonZuLinieTests.test_stufe2_extrahiert_ringe_bei_einfachem_polygon` | Prüft, dass ohne boundary() die Ringe eines einfachen Polygons manuell extrahiert werden. | grün | geprüft am 2026-10-26 |
| `PolygonZuLinieTests.test_stufe2_extrahiert_alle_ringe_bei_multipolygon` | Prüft, dass bei einem MultiPolygon die Ringe aller Teilpolygone extrahiert werden. | grün | nie geprüft | | `PolygonZuLinieTests.test_stufe2_extrahiert_alle_ringe_bei_multipolygon` | Prüft, dass bei einem MultiPolygon die Ringe aller Teilpolygone extrahiert werden. | grün | geprüft am 2026-10-26 |
| `PolygonZuLinieTests.test_stufe3_fallback_wenn_keine_ringe_extrahierbar` | Prüft, dass bei fehlgeschlagener Ringextraktion auf convertToType zurückgefallen wird. | grün | nie geprüft | | `PolygonZuLinieTests.test_stufe1_leerer_umring_faellt_auf_stufe2_zurueck` | Prüft, dass ein leeres Ergebnis von boundary() auf die manuelle Ringextraktion zurückfällt. | grün | geprüft am 2026-10-26 |
| `PolygonZuLinieTests.test_alle_stufen_scheitern_liefert_none` | Prüft, dass polygon_zu_linie None liefert, wenn Ringextraktion und convertToType beide scheitern. | grün | nie geprüft | | `PolygonZuLinieTests.test_stufe1_fehler_faellt_auf_stufe2_zurueck` | Prüft, dass ein Fehler in boundary() auf die manuelle Ringextraktion zurückfällt. | grün | geprüft am 2026-10-26 |
| `LayerExistsInGpkgTests.test_fehlende_datei_liefert_false` | Prüft, dass eine nicht vorhandene GPKG-Datei False liefert. | grün | nie geprüft | | `PolygonZuLinieTests.test_stufe3_fallback_wenn_keine_ringe_extrahierbar` | Prüft, dass bei fehlgeschlagener Ringextraktion auf convertToType(1, True) zurückgefallen wird. | grün | geprüft am 2026-10-26 |
| `LayerExistsInGpkgTests.test_leerer_pfad_oder_layername_liefert_false` | Prüft, dass ein leerer Pfad oder Layername False liefert. | grün | nie geprüft | | `PolygonZuLinieTests.test_alle_stufen_scheitern_liefert_none` | Prüft, dass polygon_zu_linie None liefert, wenn Ringextraktion und convertToType beide scheitern. | grün | geprüft am 2026-10-26 |
| `LayerExistsInGpkgTests.test_vorhandener_layer_liefert_true` | Prüft, dass ein in gpkg_contents eingetragener Layername als vorhanden erkannt wird. | grün | nie geprüft | | `LayerExistsInGpkgTests.test_fehlende_datei_liefert_false` | Prüft, dass eine nicht vorhandene GPKG-Datei False liefert. | grün | geprüft am 2026-10-26 |
| `LayerExistsInGpkgTests.test_fehlender_layer_liefert_false` | Prüft, dass ein nicht in gpkg_contents eingetragener Layername als nicht vorhanden gilt. | grün | nie geprüft | | `LayerExistsInGpkgTests.test_leerer_pfad_oder_layername_liefert_false` | Prüft, dass ein leerer Pfad oder Layername False liefert. | grün | geprüft am 2026-10-26 |
| `CreateBufferLayerTests.test_ohne_qgis_liefert_none` | Prüft, dass create_buffer_layer ohne verfügbares QGIS None liefert. | grün | nie geprüft | | `LayerExistsInGpkgTests.test_vorhandener_layer_liefert_true` | Prüft, dass ein in gpkg_contents eingetragener Layername als vorhanden erkannt wird. | grün | geprüft am 2026-10-26 |
| `CreateBufferLayerTests.test_fehlender_source_layer_liefert_none` | Prüft, dass ein fehlender Quelllayer (None) None liefert, auch wenn QGIS verfügbar wäre. | grün | nie geprüft | | `LayerExistsInGpkgTests.test_fehlender_layer_liefert_false` | Prüft, dass ein nicht in gpkg_contents eingetragener Layername als nicht vorhanden gilt. | grün | geprüft am 2026-10-26 |
| `CreateBufferLayerTests.test_source_layer_ohne_getfeatures_liefert_none` | Prüft, dass ein Quelllayer ohne getFeatures()-Methode None liefert. | grün | nie geprüft | | `CreateBufferLayerTests.test_ohne_qgis_liefert_none` | Prüft, dass create_buffer_layer ohne verfügbares QGIS None liefert. | grün | geprüft am 2026-10-26 |
| `CreateBufferLayerTests.test_fehlender_source_layer_liefert_none` | Prüft, dass ein fehlender Quelllayer (None) None liefert, auch wenn QGIS verfügbar wäre. | grün | geprüft am 2026-10-26 |
| `CreateBufferLayerTests.test_source_layer_ohne_getfeatures_liefert_none` | Prüft, dass ein Quelllayer ohne getFeatures()-Methode None liefert. | grün | geprüft am 2026-10-26 |
| `CreateBufferLayerTests.test_source_layer_ohne_features_liefert_none` | Prüft, dass ein Quelllayer ohne Features None liefert, statt einen leeren Pufferlayer anzulegen. | grün | geprüft am 2026-10-26 |
### `Plugin_SN_Basis/tests/test_qgisui_wrapper_helpers.py` ### `Plugin_SN_Basis/tests/test_qgisui_wrapper_helpers.py`
@@ -792,7 +795,7 @@ Testgruppen:
## Paket `sn_verfahrensgebiet` ## Paket `sn_verfahrensgebiet`
Fachplugin, Ordner `Plugin_SN_Verfahrensgebiet` – 12 Testdateien mit 208 Testfällen (166 grün, 34 rot, 8 übersprungen). Fachplugin, Ordner `Plugin_SN_Verfahrensgebiet` – 18 Testdateien mit 289 Testfällen (247 grün, 34 rot, 8 übersprungen).
### `Plugin_SN_Verfahrensgebiet/tests/test_beteiligung_pruefung.py` ### `Plugin_SN_Verfahrensgebiet/tests/test_beteiligung_pruefung.py`
@@ -849,6 +852,127 @@ Testgruppen:
| `TestDockWidget.test_init_tabs_with_services_injects_available_services` | — (Docstring fehlt) | grün | nie 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 | | `TestDockWidget.test_init_tabs_with_services_reports_errors` | — (Docstring fehlt) | grün | nie geprüft |
### `Plugin_SN_Verfahrensgebiet/tests/test_eigentuemer_anzeige.py`
Worum es in der Datei geht: Tests für das Anzeigefenster des Eigentümer-Datenabgleichs (#56).
Testgruppen:
- `TestAnzeigetext` (6 Testfälle): — (Docstring fehlt)
- `TestFensterOeffnen` (3 Testfälle): — (Docstring fehlt)
| Testfall | prüft | Status | geprüft |
| --- | --- | --- | --- |
| `TestAnzeigetext.test_name_anschrift_email` | Prüft, dass die Anzeige Name mit Anrede und Titel, die mehrzeilige Anschrift mit Ortsteil und die E-Mail zeigt. | grün | nie geprüft |
| `TestAnzeigetext.test_keine_internen_angaben` | Prüft, dass der Eigentümer weder Konten, Personen-IDs, Rechtsperson-Wert noch das Kennzeichen „verstorben“ sieht. | grün | nie geprüft |
| `TestAnzeigetext.test_fehlende_email_wird_genannt` | Prüft, dass eine fehlende E-Mail ausdrücklich als „keine angegeben“ erscheint. | grün | nie geprüft |
| `TestAnzeigetext.test_werte_werden_maskiert` | Prüft, dass Sonderzeichen aus den Daten maskiert werden und kein HTML einschleusen. | grün | nie geprüft |
| `TestAnzeigetext.test_mehrere_eintraege_getrennt` | Prüft, dass mehrere Einträge untereinander, durch eine Linie getrennt, erscheinen. | grün | nie geprüft |
| `TestAnzeigetext.test_leer_nur_platzhalter` | Prüft, dass die leere Anzeige nur den neutralen Platzhalter zeigt. | grün | nie geprüft |
| `TestFensterOeffnen.test_normales_fenster_in_standardgroesse` | Prüft, dass das Anzeigefenster ohne gemerkte Lage als normales Fenster mit Rahmen in Standardgröße öffnet, nie im Vollbild. | grün | nie geprüft |
| `TestFensterOeffnen.test_gemerkte_lage_wird_wiederhergestellt` | Prüft, dass eine gemerkte Größe und Lage der letzten Sitzung wiederhergestellt wird. | grün | nie geprüft |
| `TestFensterOeffnen.test_unbrauchbare_lage_ergibt_standardgroesse` | Prüft, dass eine nicht wiederherstellbare Lage auf die Standardgröße zurückfällt. | grün | nie geprüft |
### `Plugin_SN_Verfahrensgebiet/tests/test_eigentuemer_korrektur.py`
Worum es in der Datei geht: Tests für die Korrekturen beim Eigentümer-Datenabgleich (#56).
Testgruppen:
- `TestAenderungen` (4 Testfälle): — (Docstring fehlt)
- `TestKorrekturPfad` (3 Testfälle): — (Docstring fehlt)
- `TestSchreiben` (5 Testfälle): — (Docstring fehlt)
| Testfall | prüft | Status | geprüft |
| --- | --- | --- | --- |
| `TestAenderungen.test_feldwerte` | Prüft, dass alle korrigierbaren Felder vorbelegt werden, mehrere E-Mails durch Komma getrennt. | grün | nie geprüft |
| `TestAenderungen.test_nur_echte_aenderungen` | Prüft, dass nur geänderte Felder zählen und Leerraum am Rand oder doppelte Leerzeichen keine Änderung sind. | grün | nie geprüft |
| `TestAenderungen.test_feld_leeren_ist_aenderung` | Prüft, dass das Leeren eines Feldes als Änderung zählt. | grün | nie geprüft |
| `TestAenderungen.test_wende_an` | Prüft, dass die Änderungen im angezeigten Eintrag landen und E-Mails wieder getrennt werden; Konten bleiben. | grün | nie geprüft |
| `TestKorrekturPfad.test_textdatei_provider` | Prüft, dass aus der Quelle eines Textdatei-Layers (file-URI, Leerzeichen kodiert) der Pfad neben der CSV wird. | grün | nie geprüft |
| `TestKorrekturPfad.test_ogr_provider` | Prüft, dass auch eine OGR-Quelle mit Layernamen den Pfad neben der CSV ergibt. | grün | nie geprüft |
| `TestKorrekturPfad.test_keine_csv` | Prüft, dass für Quellen ohne CSV-Datei kein Pfad vorgeschlagen wird. | grün | nie geprüft |
| `TestSchreiben.test_neue_datei_mit_kopfzeile_und_bom` | Prüft, dass eine neue Korrektur-CSV mit BOM, Kopfzeile und je Änderung einer Zeile mit Exportspaltennamen entsteht. | grün | nie geprüft |
| `TestSchreiben.test_anhaengen_ohne_zweite_kopfzeile` | Prüft, dass weitere Korrekturen angehängt werden, ohne Kopfzeile oder BOM zu wiederholen. | grün | nie geprüft |
| `TestSchreiben.test_ohne_aenderung_keine_datei` | Prüft, dass ohne Änderung keine Datei angelegt wird. | grün | nie geprüft |
| `TestSchreiben.test_schreibfehler_wird_weitergereicht` | Prüft, dass ein nicht schreibbarer Pfad als OSError beim Aufrufer ankommt. | grün | nie geprüft |
| `TestSchreiben.test_schreibt_nichts_auf_die_konsole` | Prüft, dass das Festhalten von Korrekturen keine Personendaten auf die Konsole schreibt (Datenschutz). | grün | nie geprüft |
### `Plugin_SN_Verfahrensgebiet/tests/test_eigentuemer_suche.py`
Worum es in der Datei geht: Tests für die Eigentümersuche im Serienbriefexport (#56).
Testgruppen:
- `TestLayererkennung` (2 Testfälle): — (Docstring fehlt)
- `TestSuche` (10 Testfälle): — (Docstring fehlt)
- `TestAnzeigeformen` (1 Testfälle): — (Docstring fehlt)
| Testfall | prüft | Status | geprüft |
| --- | --- | --- | --- |
| `TestLayererkennung.test_layer_mit_name_und_vorname_ist_eigentuemerlayer` | Prüft, dass ein Layer mit den Spalten Nachname und Vorname als Eigentümerdatei erkannt wird, auch mit BOM und anderer Schreibweise. | grün | nie geprüft |
| `TestLayererkennung.test_eigentuemerlayer_im_projekt` | Prüft, dass aus dem Projekt nur passende Layer kommen, nach Namen sortiert. | grün | nie geprüft |
| `TestSuche.test_ohne_eingabe_fehler` | Prüft, dass ohne Name und Vorname nicht die ganze Datei gelistet, sondern um eine Eingabe gebeten wird. | grün | nie geprüft |
| `TestSuche.test_layer_ohne_pflichtspalten` | Prüft, dass ein Layer ohne Nachname/Vorname mit Hinweis auf den Serienbriefexport abgelehnt wird. | grün | nie geprüft |
| `TestSuche.test_teilstring_ohne_gross_kleinschreibung` | Prüft, dass Name und Vorname als Teilstring ohne Rücksicht auf Groß-/Kleinschreibung gesucht werden. | grün | nie geprüft |
| `TestSuche.test_umlaute_und_eszett` | Prüft, dass „Müller“ auch „Mueller“ findet und „Strauss“ auch „Strauß“. | grün | nie geprüft |
| `TestSuche.test_gleiche_person_gleiche_anschrift_zusammengefasst` | Prüft, dass Zeilen mit gleichem Namen und gleicher Anschrift ein Treffer werden und Konten, Personen-IDs und E-Mails gesammelt werden. | grün | nie geprüft |
| `TestSuche.test_andere_anschrift_eigener_treffer` | Prüft, dass dieselbe Person mit anderer Anschrift ein eigener Treffer bleibt, sortiert nach Wohnort. | grün | nie geprüft |
| `TestSuche.test_kennzeichen_verstorben` | Prüft, dass „verstorben“ beim Exportwert 1 (auch als Zahl gelesen) gesetzt ist und bei 0, Leerem und NULL nicht. | grün | nie geprüft |
| `TestSuche.test_rechtsperson_als_rohwert` | Prüft, dass PER_RECHTSPERSON unverändert angezeigt wird (0, 1, 5, 9; noch nicht entschlüsselt) und abweichende Werte einer Person gesammelt werden. | grün | nie geprüft |
| `TestSuche.test_plz_mit_fuehrender_null` | Prüft, dass eine von QGIS als Zahl gelesene PLZ wieder fünfstellig mit führender Null erscheint und Zeilen dadurch zusammenfinden. | grün | nie geprüft |
| `TestSuche.test_suche_gibt_nichts_aus` | Prüft, dass die Suche keine Personendaten auf die Konsole schreibt (Datenschutz). | grün | nie geprüft |
| `TestAnzeigeformen.test_name_und_anschrift` | Prüft, dass Name mit Titel und einzeilige Anschrift mit Ortsteil lesbar zusammengesetzt werden. | grün | nie geprüft |
### `Plugin_SN_Verfahrensgebiet/tests/test_eigentuemer_tab.py`
Worum es in der Datei geht: Tests für den Tab „Eigentümer“ – Flurstückssuche, Eigentümersuche, Anzeige und Korrektur (#56).
Testgruppen:
- `TestFlurstueckSuchen` (5 Testfälle): — (Docstring fehlt)
- `TestEigentuemerSuchen` (4 Testfälle): — (Docstring fehlt)
- `TestTrefferliste` (3 Testfälle): — (Docstring fehlt)
- `TestSitzung` (7 Testfälle): — (Docstring fehlt)
- `TestKorrekturLabel` (4 Testfälle): — (Docstring fehlt)
- `TestKorrektur` (5 Testfälle): — (Docstring fehlt)
- `TestKorrekturDatei` (2 Testfälle): — (Docstring fehlt)
- `TestDockWidgetTabs` (1 Testfälle): — (Docstring fehlt)
| Testfall | prüft | Status | geprüft |
| --- | --- | --- | --- |
| `TestFlurstueckSuchen.test_ohne_flurstueckslayer_erscheint_hinweisdialog` | Prüft, dass ohne Layer „Flurstücke“ ein Dialog zum Laden von Verfahrensgebiet und Flurstücken erscheint. | grün | nie geprüft |
| `TestFlurstueckSuchen.test_eingabefehler_als_warnung` | Prüft, dass eine ungültige Eingabe als Warnung in der Meldungsleiste erscheint, nicht als Dialog. | grün | nie geprüft |
| `TestFlurstueckSuchen.test_kein_treffer` | Prüft, dass ohne Treffer ein Hinweis erscheint und keine Auswahl gesetzt wird. | grün | nie geprüft |
| `TestFlurstueckSuchen.test_treffer_werden_ausgewaehlt_und_angezoomt` | Prüft, dass Treffer im Flurstückslayer ausgewählt, angezoomt und gemeldet werden. | grün | nie geprüft |
| `TestFlurstueckSuchen.test_ohne_kartenansicht_bleibt_auswahl` | Prüft, dass die Auswahl auch ohne Kartenansicht gesetzt und gemeldet wird. | grün | nie geprüft |
| `TestEigentuemerSuchen.test_ohne_eigentuemerdatei_warnung` | Prüft, dass ohne gewählte Eigentümerdatei die Liste aufgefrischt und dann auf das Laden der CSV hingewiesen wird. | grün | nie geprüft |
| `TestEigentuemerSuchen.test_suchfehler_als_warnung` | Prüft, dass ein Fehler der Suche (z. B. leere Eingabe) als Warnung erscheint. | grün | nie geprüft |
| `TestEigentuemerSuchen.test_kein_treffer_ohne_namen_in_meldung` | Prüft, dass ohne Treffer ein Hinweis erscheint, der den gesuchten Namen nicht wiederholt (Datenschutz). | grün | nie geprüft |
| `TestEigentuemerSuchen.test_treffer_oeffnen_trefferliste_und_ersetzen_die_alte` | Prüft, dass Treffer in einer neuen Trefferliste mit Anzeige-Rückruf erscheinen, eine offene alte Liste geschlossen wird und die Eingaben an die Suche gehen. | grün | nie geprüft |
| `TestTrefferliste.test_trefferzeile_mit_hinweis` | Prüft, dass die Trefferliste Name, Anschrift, E-Mail, den Rohwert von PER_RECHTSPERSON und das Kennzeichen „verstorben“ zeigt. | grün | nie geprüft |
| `TestTrefferliste.test_ausgewaehlte_eigentuemer` | Prüft, dass das Trefferfenster die in der Tabelle gewählten Einträge zurückgibt. | grün | nie geprüft |
| `TestTrefferliste.test_daten_anzeigen_gibt_auswahl_weiter` | Prüft, dass „Daten anzeigen“ die Auswahl der Trefferliste an den Tab übergibt. | grün | nie geprüft |
| `TestSitzung.test_sitzung_beginnen_oeffnet_leeres_fenster_mit_rahmen` | Prüft, dass „Sitzung beginnen“ ein leeres Anzeigefenster als normales Fenster öffnet (ohne gemerkte Lage beim ersten Mal). | grün | nie geprüft |
| `TestSitzung.test_lage_gilt_fuer_naechste_sitzung` | Prüft, dass Größe und Lage des Fensters beim Beenden gemerkt und in der nächsten Sitzung wiederverwendet werden. | grün | nie geprüft |
| `TestSitzung.test_daten_anzeigen_beginnt_sitzung_bei_bedarf` | Prüft, dass „Daten anzeigen“ ohne laufende Sitzung diese beginnt und die Einträge zeigt; die Statuszeile nennt nur die Anzahl. | grün | nie geprüft |
| `TestSitzung.test_daten_anzeigen_ohne_auswahl` | Prüft, dass „Daten anzeigen“ ohne Auswahl nur einen Hinweis gibt und keine Sitzung beginnt. | grün | nie geprüft |
| `TestSitzung.test_anzeige_leeren_laesst_fenster_offen` | Prüft, dass „Anzeige leeren“ die Daten entfernt, das Fenster aber nicht schließt. | grün | nie geprüft |
| `TestSitzung.test_sitzung_beenden_schliesst_fenster` | Prüft, dass „Sitzung beenden“ das Anzeigefenster schließt und die angezeigten Daten vergisst. | grün | nie geprüft |
| `TestSitzung.test_von_aussen_geschlossen_beendet_sitzung` | Prüft, dass ein über den Fensterrahmen geschlossenes Anzeigefenster die Sitzung beendet und seine Lage gemerkt wird. | grün | nie geprüft |
| `TestKorrekturLabel.test_ohne_eigentuemerdatei` | Prüft, dass ohne Eigentümerdatei unter den Knöpfen steht, dass keine gewählt ist. | grün | nie geprüft |
| `TestKorrekturLabel.test_pfad_neben_der_eigentuemerdatei` | Prüft, dass der Pfad der Korrektur-CSV angezeigt wird, mit Hinweis, solange sie noch nicht angelegt ist. | grün | nie geprüft |
| `TestKorrekturLabel.test_ohne_csv_quelle_wird_abgefragt` | Prüft, dass bei einer Quelle ohne CSV angekündigt wird, dass der Speicherort beim ersten Speichern abgefragt wird. | grün | nie geprüft |
| `TestKorrekturLabel.test_gewaehlter_pfad_wird_angezeigt` | Prüft, dass ein einmal gewählter Speicherort angezeigt wird. | grün | nie geprüft |
| `TestKorrektur.test_korrektur_wird_festgehalten_und_angezeigt` | Prüft, dass eine Korrektur in die Korrektur-CSV geschrieben, sofort angezeigt und ohne Namen gemeldet wird. | grün | nie geprüft |
| `TestKorrektur.test_ohne_aenderung_nichts_schreiben` | Prüft, dass ein unverändert gespeicherter Dialog nichts schreibt. | grün | nie geprüft |
| `TestKorrektur.test_abbruch_nichts_schreiben` | Prüft, dass ein abgebrochener Korrekturdialog nichts schreibt. | grün | nie geprüft |
| `TestKorrektur.test_schreibfehler_warnung_und_anzeige_unveraendert` | Prüft, dass bei einem Schreibfehler gewarnt, die Anzeige nicht geändert und der Pfad beim nächsten Mal neu bestimmt wird. | grün | nie geprüft |
| `TestKorrektur.test_ohne_anzeige_keine_korrektur` | Prüft, dass ohne angezeigte Daten kein Korrekturdialog erscheint. | grün | nie geprüft |
| `TestKorrekturDatei.test_vorschlag_neben_der_eigentuemerdatei` | Prüft, dass die Korrektur-CSV ohne Rückfrage neben der Eigentümerdatei liegt, wenn der Ordner beschreibbar ist, und gemerkt wird. | grün | nie geprüft |
| `TestKorrekturDatei.test_ohne_csv_quelle_wird_gefragt` | Prüft, dass ohne verwertbare CSV-Quelle nach dem Speicherort gefragt wird; Abbrechen liefert keinen Pfad. | grün | nie geprüft |
| `TestDockWidgetTabs.test_tab_ist_im_dockwidget_eingetragen` | Prüft, dass der Tab „Eigentümer“ im DockWidget direkt nach dem Bearbeitungs-Tab steht. | grün | nie geprüft |
### `Plugin_SN_Verfahrensgebiet/tests/test_flurstueck_alkis.py` ### `Plugin_SN_Verfahrensgebiet/tests/test_flurstueck_alkis.py`
Worum es in der Datei geht: Unit-Tests für das flurstueck_alkis-Modul. Worum es in der Datei geht: Unit-Tests für das flurstueck_alkis-Modul.
@@ -875,6 +999,30 @@ Testgruppen:
| `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_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 | | `TestFlurstueckAlkisAnhaengenDedup.test_ohne_schluessel_abfrage_append_dedup` | ohne_schluessel_abfrage=True: Anhängen dedupliziert trotzdem, ohne nach Schlüsseln zu fragen (#47). | grün | nie geprüft |
### `Plugin_SN_Verfahrensgebiet/tests/test_flurstueck_suche.py`
Worum es in der Datei geht: Tests für die Flurstückssuche im Layer „Flurstücke“ (#56).
Testgruppen:
- `TestEingabe` (6 Testfälle): — (Docstring fehlt)
- `TestSuche` (6 Testfälle): — (Docstring fehlt)
| Testfall | prüft | Status | geprüft |
| --- | --- | --- | --- |
| `TestEingabe.test_flurstuecksnummer_mit_und_ohne_nenner` | Prüft, dass Zähler und Nenner getrennt und führende Nullen entfernt werden. | grün | nie geprüft |
| `TestEingabe.test_ungueltige_flurstuecksnummer` | Prüft, dass leere oder unzulässige Flurstücksnummern abgelehnt werden. | grün | nie geprüft |
| `TestEingabe.test_kennzeichen_zerlegen` | Prüft, dass Gemarkung, Zähler und Nenner aus dem ALKIS-Kennzeichen gelesen werden. | grün | nie geprüft |
| `TestEingabe.test_gemarkungsnummer_aus_ziffern` | Prüft, dass Ziffern als Gemarkungsnummer gelten, auch ohne führende Nullen oder als langer Schlüssel. | grün | nie geprüft |
| `TestEingabe.test_gemarkungsname_ueber_gemarkungslayer` | Prüft, dass ein Gemarkungsname ohne Rücksicht auf Großschreibung in alle passenden Nummern übersetzt wird. | grün | nie geprüft |
| `TestEingabe.test_gemarkungsname_ohne_layer_oder_unbekannt` | Prüft, dass ein Name ohne Gemarkungslayer oder ohne Treffer eine verständliche Meldung ergibt. | grün | nie geprüft |
| `TestSuche.test_mit_nenner_genau_ein_treffer` | Prüft, dass mit Nenner nur das passende Flurstück der Gemarkung gefunden wird. | grün | nie geprüft |
| `TestSuche.test_ohne_nenner_alle_mit_diesem_zaehler` | Prüft, dass ohne Nenner alle Flurstücke mit dem Zähler gefunden werden, aber nur in der gesuchten Gemarkung. | grün | nie geprüft |
| `TestSuche.test_kein_treffer` | Prüft, dass ein nicht vorhandenes Flurstück eine leere Trefferliste ergibt. | grün | nie geprüft |
| `TestSuche.test_layer_ohne_kennzeichenfeld` | Prüft, dass ein Flurstückslayer ohne Feld „flurstueckskennzeichen“ gemeldet wird. | grün | nie geprüft |
| `TestSuche.test_fehlender_flurstueckslayer_bricht_ab` | Prüft, dass die Suche ohne Layer „Flurstücke“ mit dem Hinweis abbricht, zuerst Verfahrensgebiet und Flurstücke zu laden. | grün | nie geprüft |
| `TestSuche.test_suche_im_projekt_mit_gemarkungsname` | Prüft, dass die Suche im Projekt den Gemarkungsnamen auflöst und Layer samt Treffern liefert. | grün | nie geprüft |
### `Plugin_SN_Verfahrensgebiet/tests/test_gemarkung_alkis.py` ### `Plugin_SN_Verfahrensgebiet/tests/test_gemarkung_alkis.py`
Worum es in der Datei geht: Unit-Tests für `sn_verfahrensgebiet.functions.gemarkung_alkis`. Worum es in der Datei geht: Unit-Tests für `sn_verfahrensgebiet.functions.gemarkung_alkis`.
@@ -1034,6 +1182,19 @@ Testgruppen:
| `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_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 | | `TestVerfahrensgebietAlkisKomplett.test_landkreis_modus_nur_laden_ueberspringt_dialog2` | nur_laden=True → Funktion kehrt sofort zurück, Dialog 2 (Gemarkung | grün | nie geprüft |
### `Plugin_SN_Verfahrensgebiet/tests/test_verfahrensgebiet_dialoge.py`
Worum es in der Datei geht: Tests für die gemeinsame Auswahltabelle in verfahrensgebiet_dialoge (#56).
Testgruppen:
- `TestAuswahltabelle` (2 Testfälle): — (Docstring fehlt)
| Testfall | prüft | Status | geprüft |
| --- | --- | --- | --- |
| `TestAuswahltabelle.test_suchfilter_ueber_alle_spalten` | Prüft, dass der Suchfilter Teilstrings in jeder Spalte ohne Groß-/Kleinschreibung findet und leer alles zeigt. | grün | nie geprüft |
| `TestAuswahltabelle.test_auswahl_nach_umsortieren` | Prüft, dass die Auswahl über den gespeicherten Index auf die ursprünglichen Zeilen zurückgeführt wird, auch wenn die Tabelle umsortiert ist. | grün | nie geprüft |
### `Plugin_SN_Verfahrensgebiet/tests/test_verfahrensgebiet_edit_service.py` ### `Plugin_SN_Verfahrensgebiet/tests/test_verfahrensgebiet_edit_service.py`
Worum es in der Datei geht: Unit-Tests für das Verfahrensgebiet-Edit-Service-Modul. Worum es in der Datei geht: Unit-Tests für das Verfahrensgebiet-Edit-Service-Modul.
@@ -1125,6 +1286,7 @@ Testgruppen:
- `TestWorkingTab` (24 Testfälle): — (Docstring fehlt) - `TestWorkingTab` (24 Testfälle): — (Docstring fehlt)
- `TestHandleVerfShape` (9 Testfälle): — (Docstring fehlt) - `TestHandleVerfShape` (9 Testfälle): — (Docstring fehlt)
- `TestZoomImProjektKbs` (2 Testfälle): Zoom auf das neue Verfahrensgebiet rechnet in das KBS der Kartenansicht um (Basis #99).
| Testfall | prüft | Status | geprüft | | Testfall | prüft | Status | geprüft |
| --- | --- | --- | --- | | --- | --- | --- | --- |
@@ -1161,6 +1323,8 @@ Testgruppen:
| `TestHandleVerfShape.test_bror_layer_erhaelt_qml_stil` | Wenn bror_layer zurückgegeben → BauRaumOderBodenordnungsrecht.qml angewendet. | 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_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 | | `TestHandleVerfShape.test_busy_state_set_during_execution` | Button wird während der Ausführung auf busy gesetzt. | grün | nie geprüft |
| `TestZoomImProjektKbs.test_alkis_zoom_ueber_zoom_auf_layer` | Prüft, dass nach dem Laden aus ALKIS über zoom_auf_layer auf das Verfahrensgebiet gezoomt wird und nicht mit der unumgerechneten Layer-Ausdehnung. | grün | nie geprüft |
| `TestZoomImProjektKbs.test_shape_zoom_ueber_zoom_auf_layer` | Prüft, dass nach dem Laden aus einem Shape über zoom_auf_layer auf das Verfahrensgebiet gezoomt wird und nicht mit der unumgerechneten Layer-Ausdehnung. | grün | nie geprüft |
## Paket `sn_plan41` ## Paket `sn_plan41`
@@ -1277,11 +1441,11 @@ Arbeitsliste: Diese Testfälle haben keinen Docstring; was sie fachlich prüfen,
aus dem Quelltext erschließen. Jeder Eintrag braucht eine einzeilige Beschreibung im Testfall, aus dem Quelltext erschließen. Jeder Eintrag braucht eine einzeilige Beschreibung im Testfall,
dann verschwindet er hier von selbst. dann verschwindet er hier von selbst.
### `sn_basis` – 0 von 353 Testfällen ohne Beschreibung ### `sn_basis` – 0 von 356 Testfällen ohne Beschreibung
Keine Lücken. Keine Lücken.
### `sn_verfahrensgebiet` – 102 von 208 Testfällen ohne Beschreibung ### `sn_verfahrensgebiet` – 102 von 289 Testfällen ohne Beschreibung
#### `Plugin_SN_Verfahrensgebiet/tests/test_beteiligung_pruefung.py` (25 von 25) #### `Plugin_SN_Verfahrensgebiet/tests/test_beteiligung_pruefung.py` (25 von 25)
@@ -1409,7 +1573,7 @@ Keine Lücken.
- `TestVerfahrensgebietShapeKomplett.test_punktort_ta_none_gibt_shape_vg_zurueck_und_zeigt_fehler` - `TestVerfahrensgebietShapeKomplett.test_punktort_ta_none_gibt_shape_vg_zurueck_und_zeigt_fehler`
- `TestVerfahrensgebietShapeKomplett.test_temp_layer_wird_stets_entfernt` - `TestVerfahrensgebietShapeKomplett.test_temp_layer_wird_stets_entfernt`
#### `Plugin_SN_Verfahrensgebiet/tests/test_working_tab.py` (6 von 33) – auch der Modul-Docstring fehlt #### `Plugin_SN_Verfahrensgebiet/tests/test_working_tab.py` (6 von 35) – auch der Modul-Docstring fehlt
- `TestWorkingTab.test_set_busy_updates_button_state` - `TestWorkingTab.test_set_busy_updates_button_state`
- `TestWorkingTab.test_on_verf_layer_changed_valid_sets_variable` - `TestWorkingTab.test_on_verf_layer_changed_valid_sets_variable`
@@ -1591,7 +1755,7 @@ Heuristik, kein Beweis: Diese Funktionen und Methoden kommen unter ihrem Namen i
- `PrintTab._on_druckbereich_changed` (Zeile 374) — **beabsichtigt:** von Test abgesehen, weil vernachlässigbar; HD 18.09.2026 - `PrintTab._on_druckbereich_changed` (Zeile 374) — **beabsichtigt:** von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
- `PrintTab._format_druckpuffer_label` (Zeile 432) — **beabsichtigt:** von Test abgesehen, weil vernachlässigbar; HD 18.09.2026 - `PrintTab._format_druckpuffer_label` (Zeile 432) — **beabsichtigt:** von Test abgesehen, weil vernachlässigbar; HD 18.09.2026
### `sn_verfahrensgebiet` – 34 von 104 (33 %) ohne Testbezug (34 ungeklärt, 0 beabsichtigt) ### `sn_verfahrensgebiet` – 51 von 161 (32 %) ohne Testbezug (51 ungeklärt, 0 beabsichtigt)
#### `functions/beteiligung_pruefung.py` (5) #### `functions/beteiligung_pruefung.py` (5)
@@ -1601,10 +1765,23 @@ Heuristik, kein Beweis: Diese Funktionen und Methoden kommen unter ihrem Namen i
- `_try1_listenabgleich` (Zeile 279) — ungeklärt - `_try1_listenabgleich` (Zeile 279) — ungeklärt
- `_lese_vef_vkzf` (Zeile 380) — ungeklärt - `_lese_vef_vkzf` (Zeile 380) — ungeklärt
#### `functions/eigentuemer_suche.py` (5)
- `_plz` (Zeile 111) — ungeklärt
- `_ist_gesetzt` (Zeile 122) — ungeklärt
- `_vergleichstext` (Zeile 126) — ungeklärt
- `_spalten_des_layers` (Zeile 131) — ungeklärt
- `_gruppenschluessel` (Zeile 162) — ungeklärt
#### `functions/flurstueck_alkis.py` (1) #### `functions/flurstueck_alkis.py` (1)
- `_vorhandene_kennzeichen` (Zeile 80) — ungeklärt - `_vorhandene_kennzeichen` (Zeile 80) — ungeklärt
#### `functions/flurstueck_suche.py` (2)
- `_normiere_nenner` (Zeile 65) — ungeklärt
- `_hole_layer` (Zeile 155) — ungeklärt
#### `functions/gemarkung_alkis.py` (1) #### `functions/gemarkung_alkis.py` (1)
- `gemarkung_schluessel_von_vg_geometrie` (Zeile 212) — ungeklärt - `gemarkung_schluessel_von_vg_geometrie` (Zeile 212) — ungeklärt
@@ -1642,9 +1819,10 @@ Heuristik, kein Beweis: Diese Funktionen und Methoden kommen unter ihrem Namen i
- `_entferne_hilfs_layer` (Zeile 100) — ungeklärt - `_entferne_hilfs_layer` (Zeile 100) — ungeklärt
- `_flaeche_des_layers` (Zeile 210) — ungeklärt - `_flaeche_des_layers` (Zeile 210) — ungeklärt
#### `functions/verfahrensgebiet_dialoge.py` (1) #### `functions/verfahrensgebiet_dialoge.py` (2)
- `ask_landkreis_objekte` (Zeile 101) — ungeklärt - `baue_auswahltabelle` (Zeile 31) — ungeklärt
- `ask_landkreis_objekte` (Zeile 197) — ungeklärt
#### `functions/verfahrensgebiet_shape_komplett.py` (6) #### `functions/verfahrensgebiet_shape_komplett.py` (6)
@@ -1655,6 +1833,21 @@ Heuristik, kein Beweis: Diese Funktionen und Methoden kommen unter ihrem Namen i
- `_erstelle_vergleich_layer` (Zeile 251) — ungeklärt - `_erstelle_vergleich_layer` (Zeile 251) — ungeklärt
- `_finde_alle_shp` (Zeile 342) — ungeklärt - `_finde_alle_shp` (Zeile 342) — ungeklärt
#### `ui/eigentuemer_anzeige.py` (2)
- `_ortsteil` (Zeile 27) — ungeklärt
- `EigentuemerAnzeige.closeEvent` (Zeile 88) — ungeklärt
#### `ui/tabs/eigentuemer_tab.py` (7)
- `EigentuemerLayerAuswahl.showPopup` (Zeile 73) — ungeklärt
- `EigentuemerTab._zoome_auf_auswahl` (Zeile 230) — ungeklärt
- `EigentuemerTab._zeige_treffer` (Zeile 273) — ungeklärt
- `EigentuemerTab._anzeige_wurde_geschlossen` (Zeile 311) — ungeklärt
- `EigentuemerTab._aktualisiere_sitzungsstatus` (Zeile 341) — ungeklärt
- `EigentuemerTab._korrektur_layer_id` (Zeile 356) — ungeklärt
- `EigentuemerTab._korrektur_vorschau` (Zeile 360) — ungeklärt
#### `ui/tabs/working_tab.py` (5) #### `ui/tabs/working_tab.py` (5)
- `WorkingTab.handle_beteiligung_pruefen` (Zeile 297) — ungeklärt - `WorkingTab.handle_beteiligung_pruefen` (Zeile 297) — ungeklärt