Files
Plugin_SN_Verfahrensgebiet/tests/test_verfahrensgebiet_dialoge.py
T

45 lines
1.6 KiB
Python
Raw Normal View History

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