79 neue Testfälle: Verfahrensgebiet-Zustandsverwaltung (Listener-Setup/ -teardown, Signal-Handler), DockManager/BaseDockWidget, pruef_ergebnis- Persistenz-Gates, Pruefmanager-Entscheidungswege, restliche Dateipruefer- Zweige, Fundament-Wrapper (sys_wrapper, ly_existence_wrapper, ly_style_wrapper.apply_style_from_path, landkreise, message_wrapper, qgiscore_wrapper.polygon_zu_linie/layer_exists_in_gpkg, qgisui_wrapper.add_layer_to_project) und SettingsTab.save_data/load_data. Ausgeklammert: LayerLoader.apply_style/ly_style_wrapper.apply_style (Bug-Verdacht, hartkodierter Fachplugin-Pfad) und Pruefmanager._ask_use_or_replace_pufferlayer (bereits als Bug in #60 erfasst: ruft nicht existierendes self.pruefmanager auf). qt_wrapper._MockQDockWidget um closeEvent() ergänzt (fehlte, ließ jede BaseDockWidget.closeEvent()-Ausführung im Mock-Modus abstürzen). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
39 lines
1.7 KiB
Python
39 lines
1.7 KiB
Python
"""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()
|