forked from AG_QGIS/Plugin_SN_Basis
Auf Wrapper umgestellt, Prüfarchitektur QT6-kompatibel gemacht (Nicht lauffähig)
This commit is contained in:
@@ -1,50 +1,79 @@
|
||||
#test_stilpruefer.py
|
||||
# sn_basis/test/test_stilpruefer.py
|
||||
|
||||
import unittest
|
||||
import tempfile
|
||||
import os
|
||||
import sys
|
||||
from unittest.mock import patch
|
||||
|
||||
from sn_basis.modules.stilpruefer import Stilpruefer
|
||||
from sn_basis.modules.pruef_ergebnis import pruef_ergebnis
|
||||
|
||||
|
||||
# Plugin-Root ermitteln (ein Verzeichnis über "test")
|
||||
ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
||||
sys.path.insert(0, ROOT)
|
||||
from modules.stilpruefer import Stilpruefer
|
||||
from modules.pruef_ergebnis import PruefErgebnis
|
||||
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.erfolgreich)
|
||||
self.assertIn("Kein Stil angegeben.", result.warnungen)
|
||||
self.assertIsNone(result.daten["stil"])
|
||||
|
||||
def test_datei_existiert_mit_qml(self):
|
||||
with tempfile.NamedTemporaryFile(suffix=".qml", delete=False) as tmp_file:
|
||||
tmp_path = tmp_file.name
|
||||
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.erfolgreich)
|
||||
self.assertEqual(result.daten["stil"], tmp_path)
|
||||
self.assertEqual(result.fehler, [])
|
||||
|
||||
self.assertTrue(result.ok)
|
||||
self.assertEqual(result.aktion, "ok")
|
||||
self.assertEqual(result.pfad, tmp_path)
|
||||
|
||||
finally:
|
||||
os.remove(tmp_path)
|
||||
|
||||
def test_datei_existiert_falsche_endung(self):
|
||||
with tempfile.NamedTemporaryFile(suffix=".txt", delete=False) as tmp_file:
|
||||
tmp_path = tmp_file.name
|
||||
# -----------------------------------------------------
|
||||
# 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.erfolgreich)
|
||||
self.assertIn("Ungültige Dateiendung", result.fehler[0])
|
||||
|
||||
self.assertFalse(result.ok)
|
||||
self.assertEqual(result.aktion, "falsche_endung")
|
||||
self.assertIn(".qml", result.meldung)
|
||||
|
||||
finally:
|
||||
os.remove(tmp_path)
|
||||
|
||||
def test_datei_existiert_nicht(self):
|
||||
fake_path = os.path.join(tempfile.gettempdir(), "nichtvorhanden.qml")
|
||||
# -----------------------------------------------------
|
||||
# 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.erfolgreich)
|
||||
self.assertIn("Stildatei nicht gefunden", result.fehler[0])
|
||||
|
||||
self.assertFalse(result.ok)
|
||||
self.assertEqual(result.aktion, "datei_nicht_gefunden")
|
||||
self.assertIn("nicht gefunden", result.meldung)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user