Zoom auf das Verfahrensgebiet ins Projekt-KBS umrechnen (Basis #99)
Nach dem Laden aus ALKIS oder Shape wurde mit layer.extent() im Layer-KBS gezoomt; bei anderem Projekt-KBS sprang die Karte an die falsche Stelle. Beide Stellen nutzen jetzt zoom_auf_layer aus sn_basis. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -924,6 +924,68 @@ class TestHandleVerfShape(unittest.TestCase):
|
||||
self.assertIn(False, busy_states, "Button muss am Ende wieder freigegeben werden")
|
||||
|
||||
|
||||
class TestZoomImProjektKbs(unittest.TestCase):
|
||||
"""Zoom auf das neue Verfahrensgebiet rechnet in das KBS der Kartenansicht um (Basis #99)."""
|
||||
|
||||
def _tab(self):
|
||||
tab = TestWorkingTab._make_tab(TestWorkingTab())
|
||||
tab.setze_haken = lambda *_: None
|
||||
tab._on_verf_layer_changed = lambda *_: None
|
||||
return tab
|
||||
|
||||
def _projekt(self, mock_project_instance):
|
||||
proj = _DummyProject()
|
||||
proj.mapLayersByName = lambda _n: []
|
||||
proj.mapLayer = lambda _lid: None
|
||||
mock_project_instance.return_value = proj
|
||||
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.zoom_auf_layer")
|
||||
@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_komplett")
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.iface")
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.set_verfahrensgebiet_layer_id")
|
||||
def test_alkis_zoom_ueber_zoom_auf_layer(self, _set_id, mock_iface, mock_alkis, mock_projekt,
|
||||
_stil, _erfolg, mock_zoom):
|
||||
"""Prüft, dass nach dem Laden aus ALKIS über zoom_auf_layer auf das Verfahrensgebiet gezoomt wird und nicht mit der unumgerechneten Layer-Ausdehnung."""
|
||||
tab = self._tab()
|
||||
enriched = _DummyLayer(valid=True, layer_id="vg")
|
||||
mock_alkis.return_value = (enriched, _DummyLayer(layer_id="flst"), None, LoadStatus.FIRST)
|
||||
self._projekt(mock_projekt)
|
||||
canvas = _DummyCanvas()
|
||||
mock_iface.mapCanvas.return_value = canvas
|
||||
|
||||
tab.handle_verf_alkis()
|
||||
|
||||
mock_zoom.assert_called_once_with(enriched, canvas)
|
||||
self.assertIsNone(canvas.extent)
|
||||
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.get_variable", return_value="VF-123")
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.zoom_auf_layer")
|
||||
@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_shape_komplett")
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.iface")
|
||||
@patch("sn_verfahrensgebiet.ui.tabs.working_tab.set_verfahrensgebiet_layer_id")
|
||||
def test_shape_zoom_ueber_zoom_auf_layer(self, _set_id, mock_iface, mock_shape, mock_projekt,
|
||||
_stil, _erfolg, mock_zoom, _var):
|
||||
"""Prüft, dass nach dem Laden aus einem Shape über zoom_auf_layer auf das Verfahrensgebiet gezoomt wird und nicht mit der unumgerechneten Layer-Ausdehnung."""
|
||||
tab = self._tab()
|
||||
tab.btn_verf_shape = _DummyButton()
|
||||
enriched = _DummyLayer(valid=True, layer_id="shape_vg")
|
||||
mock_shape.return_value = (enriched, _DummyLayer(layer_id="flst"), None, LoadStatus.FIRST)
|
||||
self._projekt(mock_projekt)
|
||||
canvas = _DummyCanvas()
|
||||
mock_iface.mapCanvas.return_value = canvas
|
||||
|
||||
tab.handle_verf_shape()
|
||||
|
||||
mock_zoom.assert_called_once_with(enriched, canvas)
|
||||
self.assertIsNone(canvas.extent)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user