forked from AG_QGIS/Plugin_SN_Basis
82 lines
2.7 KiB
Python
82 lines
2.7 KiB
Python
# sn_basis/test/test_stilpruefer.py
|
|
|
|
import unittest
|
|
import tempfile
|
|
import os
|
|
from pathlib import Path
|
|
from unittest.mock import patch
|
|
|
|
from sn_basis.modules.stilpruefer import Stilpruefer
|
|
|
|
|
|
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)
|
|
self.assertIsNone(result.kontext)
|
|
|
|
# -----------------------------------------------------
|
|
# 2. Datei existiert und ist .qml
|
|
# -----------------------------------------------------
|
|
@patch("sn_basis.modules.stilpruefer.file_exists", return_value=True)
|
|
def test_datei_existiert_mit_qml(self, 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, "stil_anwendbar")
|
|
self.assertEqual(result.kontext, Path(tmp_path))
|
|
|
|
finally:
|
|
os.remove(tmp_path)
|
|
|
|
# -----------------------------------------------------
|
|
# 3. Datei existiert, aber falsche Endung
|
|
# -----------------------------------------------------
|
|
@patch("sn_basis.modules.stilpruefer.file_exists", return_value=True)
|
|
def test_datei_existiert_falsche_endung(self, 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)
|
|
self.assertEqual(result.kontext, Path(tmp_path))
|
|
|
|
finally:
|
|
os.remove(tmp_path)
|
|
|
|
# -----------------------------------------------------
|
|
# 4. Datei existiert nicht
|
|
# -----------------------------------------------------
|
|
@patch("sn_basis.modules.stilpruefer.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)
|
|
self.assertEqual(result.kontext, Path(fake_path))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|