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