Files
Projektwissen/docs/tests/verfahrensgebiet-eigentuemersuche.md
T
DanielandClaude Opus 5.5 5e87f2367e Anzeige für den Eigentümer und Korrekturen (Verfahrensgebiet #56) dokumentiert
Testkonzept docs/tests/verfahrensgebiet-eigentuemer-anzeige.md,
Fallstricke (Korrektur-CSV mit Personendaten, Fenster auf bestimmtem
Bildschirm öffnen), Modulkarte und Testkatalog.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-06 13:27:15 +02:00

5.8 KiB

Testkonzept: Eigentümersuche im Tab „Eigentümer“

Plugin: sn_verfahrensgebiet · Stand: 06.10.2026 · Pflege: bei jeder Änderung an diesem Ablauf

Worum es fachlich geht

Im Termin mit Eigentümern gleicht die Sachbearbeitung die gespeicherten Personendaten ab: Name, Anschrift und E-Mail. Grundlage ist der Serienbriefexport als CSV-Datei, den die Sachbearbeitung von Hand ins Projekt lädt. Sie sucht nach Name und/oder Vorname. Die Trefferliste fasst Einträge derselben Person mit derselben Anschrift zusammen, denn im Export steht eine Person für jedes Eigentumskonto einmal. Dieselbe Person mit einer anderen Anschrift bleibt ein eigener Eintrag. Damit fällt eine abweichende Anschrift sofort auf. Verstorbene und Rechtspersonen sind in der Liste gekennzeichnet: verstorben als Hinweis (PER_VERSTORBEN = 1), die Art der Person als Rohwert von PER_RECHTSPERSON (0, 1, 5 oder 9; die Bedeutung der Werte wird später entschlüsselt).

Die Trefferliste sieht nur die Sachbearbeitung. Wie die gewählten Einträge dem Eigentümer angezeigt und korrigiert werden, beschreibt verfahrensgebiet-eigentuemer-anzeige.md.

Der Ablauf

flowchart TD
    A["1 Anwender lädt den Serienbriefexport<br/>als CSV-Layer ins Projekt"] --> B["2 Eigentümerdatei wählen<br/>(nur Layer mit Nachname und Vorname)"]
    B --> C{"3 Eigentümerdatei<br/>gewählt?"}
    C -->|nein| D["Hinweis: CSV laden und wählen"]
    C -->|ja| E{"4 Name oder Vorname<br/>eingegeben?"}
    E -->|nein| F["Hinweis: Namen eingeben"]
    E -->|ja| G["5 Einträge suchen<br/>(Teilwort, Groß-/Kleinschreibung<br/>und Umlaute egal)"]
    G --> H["6 Gleiche Person mit gleicher<br/>Anschrift zusammenfassen"]
    H --> I{"7 Treffer?"}
    I -->|nein| J["Hinweis: keine Einträge<br/>(ohne den Namen zu wiederholen)"]
    I -->|ja| K["8 Trefferliste mit Anschrift, E-Mail,<br/>Rechtsperson-Wert, verstorben;<br/>Mehrfachauswahl"]

    style D fill:#fff4e6,stroke:#d9822b
    style F fill:#fff4e6,stroke:#d9822b

Was geprüft wird

Die Tests liegen in Plugin_SN_Verfahrensgebiet/tests/test_eigentuemer_suche.py (Suchlogik), tests/test_eigentuemer_tab.py (Bedienung, Trefferliste) und tests/test_verfahrensgebiet_dialoge.py (gemeinsame Auswahltabelle).

# Schritt Wird geprüft durch Ebene
2 Nur Layer mit Nachname und Vorname, auch mit BOM oder anderer Schreibweise test_layer_mit_name_und_vorname_ist_eigentuemerlayer, test_eigentuemerlayer_im_projekt Mock
3 Keine Eigentümerdatei gewählt test_ohne_eigentuemerdatei_warnung Mock
3 Layer ohne die nötigen Spalten test_layer_ohne_pflichtspalten Mock
4 Ohne Eingabe keine Komplettliste test_ohne_eingabe_fehler, test_suchfehler_als_warnung Mock
5 Teilwort, Groß-/Kleinschreibung test_teilstring_ohne_gross_kleinschreibung Mock
5 Umlaute und ß test_umlaute_und_eszett Mock
6 Zusammenfassen, Konten und E-Mails sammeln test_gleiche_person_gleiche_anschrift_zusammengefasst Mock
6 Andere Anschrift bleibt eigener Eintrag test_andere_anschrift_eigener_treffer Mock
7 Kein Treffer, Meldung ohne Namen test_kein_treffer_ohne_namen_in_meldung Mock
8 Trefferliste öffnen, alte ersetzen test_treffer_oeffnen_trefferliste_und_ersetzen_die_alte Mock
8 Spalten der Trefferliste, Kennzeichen test_trefferzeile_mit_hinweis, test_kennzeichen_verstorben, test_rechtsperson_als_rohwert Mock
8 Ausgewählte Einträge, auch nach Umsortieren test_ausgewaehlte_eigentuemer, test_auswahl_nach_umsortieren Mock
8 Suchfeld in der Trefferliste test_suchfilter_ueber_alle_spalten Mock
— Keine Personendaten auf der Konsole test_suche_gibt_nichts_aus Mock
— Sieht das in QGIS richtig aus? manueller Test manuell

Ebene: Mock (ohne QGIS, Sekunden) · QGIS (gegen echtes QGIS) · manuell (Mensch in QGIS).

Fachliche Sonderfälle

Sonderfall Kommt vor bei Wird geprüft durch
Eine Person mit mehreren Eigentumskonten Regelfall im Serienbriefexport test_gleiche_person_gleiche_anschrift_zusammengefasst
Schreibweise weicht ab (Groß-/Kleinschreibung, Leerzeichen) Handeingaben über Jahre test_gleiche_person_gleiche_anschrift_zusammengefasst
Müller gesucht, Mueller gespeichert ältere Datenbestände test_umlaute_und_eszett
PLZ ohne führende Null (1067) QGIS erkennt beim CSV-Laden die Spalte als Zahl test_plz_mit_fuehrender_null
PER_VERSTORBEN als Text oder als Zahl gelesen QGIS erkennt beim CSV-Laden die Spalte als Zahl test_kennzeichen_verstorben
Eine Person mit verschiedenen PER_RECHTSPERSON-Werten mehrere Konten mit unterschiedlicher Erfassung test_rechtsperson_als_rohwert (Werte werden gesammelt)
Leere Felder bzw. QGIS-NULL unvollständige Datensätze test_kennzeichen_verstorben, test_rechtsperson_als_rohwert
Rechtsperson ohne Vornamen (z. B. Gemeinde) Körperschaften als Eigentümer test_name_und_anschrift, test_rechtsperson_als_rohwert

Bewusst nicht getestet

Was Warum Wie stattdessen abgesichert
Aufbau von Trefferfenster und Auswahltabelle mit echten Qt-Widgets im Mock-Modus gibt es keine Widgets; die Filter- und Zuordnungslogik ist als reine Funktion getestet manueller Test in QGIS
Echter Serienbriefexport personenbezogen, gehört nicht ins Repository erfundene Testzeilen mit der Kopfzeile der Blanko-Vorlage aus dem Issue

Bekannte Lücken

Lücke Auswirkung Issue
Der manuelle QGIS-Test steht aus, auch für den Landkreis-Dialog, dessen Tabelle jetzt aus der gemeinsamen Funktion kommt Ein Fehler beim Herauslösen der Tabelle bliebe in beiden Dialogen unbemerkt Verfahrensgebiet #56