Eigentümersuche mit Trefferliste im Tab „Eigentümer“ (#56)
Eigentümerdatei (CSV-Layer mit Nachname/Vorname) wählen, Name und/oder Vorname eingeben: Eine nicht modale Trefferliste zeigt Name, Anschrift, E-Mail und die Kennzeichen „verstorben“/„Rechtsperson“. Gleiche Personen mit gleicher Anschrift werden zusammengefasst; Groß-/Kleinschreibung und Umlautschreibweise spielen keine Rolle. Von QGIS als Zahl gelesene PLZ bekommen ihre führende Null zurück. Meldungen enthalten keine Namen. Die Auswahltabelle aus „Verfahrensgebiete aus Landkreis laden“ ist als baue_auswahltabelle herausgelöst und wird von der Trefferliste mitgenutzt. Zweiter Schritt von #56; Anzeigefenster und Korrekturen folgen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
"""Tests für die gemeinsame Auswahltabelle in verfahrensgebiet_dialoge (#56)."""
|
||||
|
||||
import types
|
||||
import unittest
|
||||
|
||||
from sn_verfahrensgebiet.functions.verfahrensgebiet_dialoge import (
|
||||
ausgewaehlte_indizes,
|
||||
zeilen_sichtbar,
|
||||
)
|
||||
|
||||
|
||||
class _Item:
|
||||
def __init__(self, row, index):
|
||||
self._row = row
|
||||
self._index = index
|
||||
|
||||
def row(self):
|
||||
return self._row
|
||||
|
||||
def data(self, _rolle):
|
||||
return self._index
|
||||
|
||||
|
||||
class TestAuswahltabelle(unittest.TestCase):
|
||||
|
||||
def test_suchfilter_ueber_alle_spalten(self):
|
||||
"""Prüft, dass der Suchfilter Teilstrings in jeder Spalte ohne Groß-/Kleinschreibung findet und leer alles zeigt."""
|
||||
zeilen = [["14612", "Verfahren Nord"], ["14613", "Süd"], ["14700", None]]
|
||||
self.assertEqual(zeilen_sichtbar(zeilen, "nord"), [True, False, False])
|
||||
self.assertEqual(zeilen_sichtbar(zeilen, " 146 "), [True, True, False])
|
||||
self.assertEqual(zeilen_sichtbar(zeilen, ""), [True, True, True])
|
||||
|
||||
def test_auswahl_nach_umsortieren(self):
|
||||
"""Prüft, dass die Auswahl über den gespeicherten Index auf die ursprünglichen Zeilen zurückgeführt wird, auch wenn die Tabelle umsortiert ist."""
|
||||
# Tabelle zeigt Zeile 0 → Index 2, Zeile 1 → Index 0; beide Spalten je Zeile ausgewählt
|
||||
tabelle = types.SimpleNamespace(
|
||||
selectedItems=lambda: [_Item(0, 2), _Item(0, 2), _Item(1, 0), _Item(1, 0)],
|
||||
item=lambda row, col: _Item(row, {0: 2, 1: 0}[row]),
|
||||
)
|
||||
self.assertEqual(ausgewaehlte_indizes(tabelle), [0, 2])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user