Files
Plugin_SN_Basis/tests/test_qgisui_wrapper_helpers.py
T

39 lines
1.7 KiB
Python
Raw Normal View History

"""Tests für sn_basis/functions/qgisui_wrapper.py::add_layer_to_project (Issue #65)."""
import unittest
from unittest.mock import MagicMock, patch
from sn_basis.functions import qgisui_wrapper as qui
class AddLayerToProjectTests(unittest.TestCase):
def test_none_layer_liefert_false(self):
"""Prüft, dass add_layer_to_project für einen fehlenden Layer (None) False liefert."""
self.assertFalse(qui.add_layer_to_project(None))
def test_mock_modus_liefert_true_ohne_projektzugriff(self):
"""Prüft, dass im Mock-Modus (ohne QGIS) ein gültiger Layer True liefert, ohne das Projekt anzufassen."""
with patch.object(qui, "QGIS_AVAILABLE", False):
self.assertTrue(qui.add_layer_to_project(object()))
def test_mit_qgis_fuegt_layer_dem_projekt_hinzu(self):
"""Prüft, dass bei verfügbarem QGIS der Layer über QgsProject.instance().addMapLayer hinzugefügt wird."""
layer = object()
mock_project = MagicMock()
with patch.object(qui, "QGIS_AVAILABLE", True), patch.object(qui, "QgsProject", mock_project):
ergebnis = qui.add_layer_to_project(layer)
self.assertTrue(ergebnis)
mock_project.instance.return_value.addMapLayer.assert_called_once_with(layer)
def test_mit_qgis_fehler_liefert_false(self):
"""Prüft, dass ein Fehler beim Hinzufügen zum Projekt abgefangen wird und False liefert."""
mock_project = MagicMock()
mock_project.instance.side_effect = RuntimeError("kaputt")
with patch.object(qui, "QGIS_AVAILABLE", True), patch.object(qui, "QgsProject", mock_project):
self.assertFalse(qui.add_layer_to_project(object()))
if __name__ == "__main__":
unittest.main()