Files
Plugin_SN_Basis/tests/test_ly_existence_wrapper.py
T

57 lines
2.1 KiB
Python
Raw Normal View History

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