Files
Plugin_SN_Basis/tests/test_ly_existence_wrapper.py
T
DanielandClaude Sonnet 5 7ce820581f Tests für restliche priorisierte sn_basis-Funktionen ergänzt (#65)
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>
2026-09-18 11:20:10 +02:00

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