# sn_basis/test/test_stilpruefer.py import unittest import tempfile import os from unittest.mock import patch from sn_basis.modules.stilpruefer import Stilpruefer from sn_basis.modules.pruef_ergebnis import pruef_ergebnis class TestStilpruefer(unittest.TestCase): def setUp(self): self.pruefer = Stilpruefer() # ----------------------------------------------------- # 1. Keine Datei angegeben # ----------------------------------------------------- def test_keine_datei_angegeben(self): result = self.pruefer.pruefe("") self.assertTrue(result.ok) self.assertEqual(result.aktion, "ok") self.assertIn("Kein Stil angegeben", result.meldung) # ----------------------------------------------------- # 2. Datei existiert und ist .qml # ----------------------------------------------------- @patch("sn_basis.functions.syswrapper.file_exists", return_value=True) @patch("sn_basis.functions.syswrapper.is_file", return_value=True) def test_datei_existiert_mit_qml(self, mock_isfile, mock_exists): with tempfile.NamedTemporaryFile(suffix=".qml", delete=False) as tmp: tmp_path = tmp.name try: result = self.pruefer.pruefe(tmp_path) self.assertTrue(result.ok) self.assertEqual(result.aktion, "ok") self.assertEqual(result.pfad, tmp_path) finally: os.remove(tmp_path) # ----------------------------------------------------- # 3. Datei existiert, aber falsche Endung # ----------------------------------------------------- @patch("sn_basis.functions.syswrapper.file_exists", return_value=True) @patch("sn_basis.functions.syswrapper.is_file", return_value=True) def test_datei_existiert_falsche_endung(self, mock_isfile, mock_exists): with tempfile.NamedTemporaryFile(suffix=".txt", delete=False) as tmp: tmp_path = tmp.name try: result = self.pruefer.pruefe(tmp_path) self.assertFalse(result.ok) self.assertEqual(result.aktion, "falsche_endung") self.assertIn(".qml", result.meldung) finally: os.remove(tmp_path) # ----------------------------------------------------- # 4. Datei existiert nicht # ----------------------------------------------------- @patch("sn_basis.functions.syswrapper.file_exists", return_value=False) def test_datei_existiert_nicht(self, mock_exists): fake_path = "/tmp/nichtvorhanden.qml" result = self.pruefer.pruefe(fake_path) self.assertFalse(result.ok) self.assertEqual(result.aktion, "datei_nicht_gefunden") self.assertIn("nicht gefunden", result.meldung) if __name__ == "__main__": unittest.main()