Auf Wrapper umgestellt, Prüfarchitektur QT6-kompatibel gemacht (Nicht lauffähig)

This commit is contained in:
2025-12-18 22:00:31 +01:00
parent f64d56d4bc
commit e8fea163b5
31 changed files with 2791 additions and 889 deletions

View File

@@ -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__":