45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
"""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()
|