"""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()