verfahrensgebiet aus Flst
This commit is contained in:
+56
-10
@@ -83,11 +83,13 @@ class TestWorkingTab(unittest.TestCase):
|
||||
tab = WorkingTab.__new__(WorkingTab)
|
||||
tab.btn_verf_alkis = _DummyButton()
|
||||
tab.btn_flurst_alkis = _DummyButton()
|
||||
tab.btn_grenz_alkis = _DummyButton()
|
||||
tab.btn_verf_aus_auswahl = _DummyButton()
|
||||
tab.btn_verf_aus_liste = _DummyButton()
|
||||
tab.verf_layer_combo = _DummyCombo()
|
||||
tab.haken_verf = object()
|
||||
tab.haken_flurst = object()
|
||||
tab.haken_verf = types.SimpleNamespace(setText=lambda _t: None, setStyleSheet=lambda _s: None)
|
||||
tab.haken_flurst = types.SimpleNamespace(setText=lambda _t: None, setStyleSheet=lambda _s: None)
|
||||
tab.haken_grenz = types.SimpleNamespace(setText=lambda _t: None, setStyleSheet=lambda _s: None)
|
||||
tab.setze_haken = lambda *_args, **_kwargs: None
|
||||
# Pruefmanager-Mock: verarbeite() wird im Test ggf. überschrieben
|
||||
tab.pruefmanager = types.SimpleNamespace(
|
||||
@@ -126,39 +128,83 @@ class TestWorkingTab(unittest.TestCase):
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.success")
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.apply_style")
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.QgsProject.instance")
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.verfahrensgebiet_alkis")
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.verfahrensgebiet_alkis_komplett")
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.iface")
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.set_verfahrensgebiet_layer_id")
|
||||
def test_handle_verf_alkis_success_path(
|
||||
self,
|
||||
mock_set_layer_id,
|
||||
mock_iface,
|
||||
mock_alkis,
|
||||
mock_alkis_komplett,
|
||||
mock_project_instance,
|
||||
mock_apply_style,
|
||||
mock_success,
|
||||
):
|
||||
"""verfahrensgebiet_alkis_komplett → 3-Tupel (enriched, flst, FIRST)."""
|
||||
tab = self._make_tab()
|
||||
layer = _DummyLayer(valid=True, layer_id="layer_ok")
|
||||
mock_alkis.return_value = (layer, LoadStatus.FIRST)
|
||||
mock_project_instance.return_value = _DummyProject()
|
||||
enriched = _DummyLayer(valid=True, layer_id="enriched_ok")
|
||||
flst = _DummyLayer(valid=True, layer_id="flst_ok")
|
||||
mock_alkis_komplett.return_value = (enriched, flst, LoadStatus.FIRST)
|
||||
proj = _DummyProject()
|
||||
proj.mapLayersByName = lambda _n: [] # kein bestehender Flst-Layer
|
||||
mock_project_instance.return_value = proj
|
||||
mock_iface.mapCanvas.return_value = _DummyCanvas()
|
||||
|
||||
tab.handle_verf_alkis()
|
||||
|
||||
mock_apply_style.assert_called_once()
|
||||
mock_apply_style.assert_called()
|
||||
mock_success.assert_called_once()
|
||||
mock_set_layer_id.assert_called_with("layer_ok")
|
||||
mock_set_layer_id.assert_called_with("enriched_ok")
|
||||
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.set_verfahrensgebiet_layer_id")
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.verfahrensgebiet_alkis", return_value=(None, LoadStatus.NONE))
|
||||
@patch(
|
||||
"sn_verfahrensgebiet.ui.tabs.working_tab.verfahrensgebiet_alkis_komplett",
|
||||
return_value=(None, None, LoadStatus.NONE),
|
||||
)
|
||||
def test_handle_verf_alkis_failure_clears_layer_var(self, _mock_alkis, mock_set_layer_id):
|
||||
"""Status NONE → Layer-Variable wird auf '' gesetzt."""
|
||||
tab = self._make_tab()
|
||||
|
||||
tab.handle_verf_alkis()
|
||||
|
||||
mock_set_layer_id.assert_called_once_with("")
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# handle_grenz_alkis
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.grenzpunkt_alkis")
|
||||
def test_handle_grenz_alkis_success_sets_haken(self, mock_grenz):
|
||||
"""Grenzpunkte erfolgreich geladen → haken_grenz wird gesetzt."""
|
||||
tab = self._make_tab()
|
||||
haken_calls = []
|
||||
tab.setze_haken = lambda lbl, v: haken_calls.append((lbl, v))
|
||||
|
||||
pta = _DummyLayer(valid=True)
|
||||
gp = _DummyLayer(valid=True)
|
||||
mock_grenz.return_value = (pta, gp)
|
||||
|
||||
tab.handle_grenz_alkis()
|
||||
|
||||
self.assertEqual(len(haken_calls), 1)
|
||||
self.assertIs(haken_calls[0][0], tab.haken_grenz)
|
||||
self.assertTrue(haken_calls[0][1])
|
||||
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.grenzpunkt_alkis")
|
||||
def test_handle_grenz_alkis_none_result_sets_no_haken(self, mock_grenz):
|
||||
"""grenzpunkt_alkis liefert (None, None) → kein Haken."""
|
||||
tab = self._make_tab()
|
||||
haken_calls = []
|
||||
tab.setze_haken = lambda lbl, v: haken_calls.append((lbl, v))
|
||||
|
||||
mock_grenz.return_value = (None, None)
|
||||
|
||||
tab.handle_grenz_alkis()
|
||||
|
||||
self.assertEqual(len(haken_calls), 0)
|
||||
# Button wieder aktiviert (finally)
|
||||
self.assertTrue(tab.btn_grenz_alkis.isEnabled())
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# handle_flurst_alkis
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user