79 neue Testfälle: Verfahrensgebiet-Zustandsverwaltung (Listener-Setup/ -teardown, Signal-Handler), DockManager/BaseDockWidget, pruef_ergebnis- Persistenz-Gates, Pruefmanager-Entscheidungswege, restliche Dateipruefer- Zweige, Fundament-Wrapper (sys_wrapper, ly_existence_wrapper, ly_style_wrapper.apply_style_from_path, landkreise, message_wrapper, qgiscore_wrapper.polygon_zu_linie/layer_exists_in_gpkg, qgisui_wrapper.add_layer_to_project) und SettingsTab.save_data/load_data. Ausgeklammert: LayerLoader.apply_style/ly_style_wrapper.apply_style (Bug-Verdacht, hartkodierter Fachplugin-Pfad) und Pruefmanager._ask_use_or_replace_pufferlayer (bereits als Bug in #60 erfasst: ruft nicht existierendes self.pruefmanager auf). qt_wrapper._MockQDockWidget um closeEvent() ergänzt (fehlte, ließ jede BaseDockWidget.closeEvent()-Ausführung im Mock-Modus abstürzen). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
57 lines
2.1 KiB
Python
57 lines
2.1 KiB
Python
"""Tests für sn_basis/functions/ly_existence_wrapper.py::layer_is_valid/layer_is_usable (Issue #65)."""
|
|
|
|
import unittest
|
|
|
|
from sn_basis.functions.ly_existence_wrapper import layer_is_usable, layer_is_valid
|
|
|
|
|
|
class _FakeLayer:
|
|
def __init__(self, valid: bool = True, wirft_fehler: bool = False) -> None:
|
|
self._valid = valid
|
|
self._wirft_fehler = wirft_fehler
|
|
|
|
def isValid(self) -> bool:
|
|
if self._wirft_fehler:
|
|
raise RuntimeError("kaputt")
|
|
return self._valid
|
|
|
|
|
|
class LayerIsValidTests(unittest.TestCase):
|
|
def test_none_ist_nicht_gueltig(self):
|
|
"""Prüft, dass layer_is_valid für None False liefert."""
|
|
self.assertFalse(layer_is_valid(None))
|
|
|
|
def test_objekt_ohne_isvalid_ist_nicht_gueltig(self):
|
|
"""Prüft, dass ein Objekt ohne isValid()-Methode als ungültig gilt."""
|
|
self.assertFalse(layer_is_valid(object()))
|
|
|
|
def test_gueltiger_layer_liefert_true(self):
|
|
"""Prüft, dass ein Layer mit isValid()==True als gültig erkannt wird."""
|
|
self.assertTrue(layer_is_valid(_FakeLayer(valid=True)))
|
|
|
|
def test_ungueltiger_layer_liefert_false(self):
|
|
"""Prüft, dass ein Layer mit isValid()==False als ungültig erkannt wird."""
|
|
self.assertFalse(layer_is_valid(_FakeLayer(valid=False)))
|
|
|
|
def test_ausnahme_bei_isvalid_liefert_false(self):
|
|
"""Prüft, dass eine Ausnahme in isValid() abgefangen wird und False liefert."""
|
|
self.assertFalse(layer_is_valid(_FakeLayer(wirft_fehler=True)))
|
|
|
|
|
|
class LayerIsUsableTests(unittest.TestCase):
|
|
def test_none_ist_nicht_nutzbar(self):
|
|
"""Prüft, dass layer_is_usable für None False liefert."""
|
|
self.assertFalse(layer_is_usable(None))
|
|
|
|
def test_gueltiger_layer_ist_nutzbar(self):
|
|
"""Prüft, dass ein vorhandener, gültiger Layer als nutzbar gilt."""
|
|
self.assertTrue(layer_is_usable(_FakeLayer(valid=True)))
|
|
|
|
def test_ungueltiger_layer_ist_nicht_nutzbar(self):
|
|
"""Prüft, dass ein vorhandener, aber ungültiger Layer als nicht nutzbar gilt."""
|
|
self.assertFalse(layer_is_usable(_FakeLayer(valid=False)))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|