verfahrensgebiet aus Flst
This commit is contained in:
@@ -219,5 +219,94 @@ class TestFlurstueckAlkis(unittest.TestCase):
|
||||
self.assertEqual(project.removed, []) # nichts gelöscht
|
||||
|
||||
|
||||
# ------------------------------------------------------------------ #
|
||||
# 6. vorgabe_schluessel füllt ask_text-Default vor #
|
||||
# ------------------------------------------------------------------ #
|
||||
@patch("sn_verfahrensgebiet.functions.flurstueck_alkis.QgsVectorLayer")
|
||||
@patch("sn_verfahrensgebiet.functions.flurstueck_alkis.QgsProject.instance")
|
||||
@patch("sn_verfahrensgebiet.functions.flurstueck_alkis.ask_text")
|
||||
def test_vorgabe_schluessel_prefills_default_text(
|
||||
self, mock_ask_text, mock_project, mock_wfs_layer_cls
|
||||
):
|
||||
"""vorgabe_schluessel=['1234','5678'] → ask_text erhält '1234, 5678' als default_text."""
|
||||
mock_ask_text.return_value = ("1234, 5678", True)
|
||||
mock_project.return_value = _DummyProject()
|
||||
mock_wfs_layer_cls.return_value = _DummyLayer(valid=True)
|
||||
|
||||
flurstueck_alkis(None, vorgabe_schluessel=["1234", "5678"])
|
||||
|
||||
args, kwargs = mock_ask_text.call_args
|
||||
# ask_text("title", label, default_text=..., parent=...)
|
||||
# default_text wird als Keyword-Arg übergeben
|
||||
default_text_arg = kwargs.get("default_text", args[2] if len(args) > 2 else "")
|
||||
self.assertIn("1234", default_text_arg)
|
||||
self.assertIn("5678", default_text_arg)
|
||||
|
||||
# ------------------------------------------------------------------ #
|
||||
# 7. vorgabe_namen erscheint im Label-Text #
|
||||
# ------------------------------------------------------------------ #
|
||||
@patch("sn_verfahrensgebiet.functions.flurstueck_alkis.QgsVectorLayer")
|
||||
@patch("sn_verfahrensgebiet.functions.flurstueck_alkis.QgsProject.instance")
|
||||
@patch("sn_verfahrensgebiet.functions.flurstueck_alkis.ask_text")
|
||||
def test_vorgabe_namen_appears_in_label(
|
||||
self, mock_ask_text, mock_project, mock_wfs_layer_cls
|
||||
):
|
||||
"""vorgabe_namen=['Musterstadt'] → ask_text-label enthält den Namen."""
|
||||
mock_ask_text.return_value = ("9999", True)
|
||||
mock_project.return_value = _DummyProject()
|
||||
mock_wfs_layer_cls.return_value = _DummyLayer(valid=True)
|
||||
|
||||
flurstueck_alkis(None, vorgabe_namen=["Musterstadt"])
|
||||
|
||||
args, kwargs = mock_ask_text.call_args
|
||||
# label ist das 2. Positional-Argument
|
||||
label_arg = args[1] if len(args) > 1 else kwargs.get("label", "")
|
||||
self.assertIn("Musterstadt", label_arg)
|
||||
|
||||
# ------------------------------------------------------------------ #
|
||||
# 8. bbox wird in WFS-URI eingebettet #
|
||||
# ------------------------------------------------------------------ #
|
||||
@patch("sn_verfahrensgebiet.functions.flurstueck_alkis.QgsVectorLayer")
|
||||
@patch("sn_verfahrensgebiet.functions.flurstueck_alkis.QgsProject.instance")
|
||||
@patch("sn_verfahrensgebiet.functions.flurstueck_alkis.ask_text")
|
||||
def test_bbox_embedded_in_wfs_uri(
|
||||
self, mock_ask_text, mock_project, mock_wfs_layer_cls
|
||||
):
|
||||
"""bbox-Parameter → WFS-URI enthält 'bbox=' Substring."""
|
||||
mock_ask_text.return_value = ("1234", True)
|
||||
mock_project.return_value = _DummyProject()
|
||||
mock_wfs_layer_cls.return_value = _DummyLayer(valid=True)
|
||||
|
||||
class _Rect:
|
||||
def xMinimum(self): return 414000.0
|
||||
def yMinimum(self): return 5657000.0
|
||||
def xMaximum(self): return 415000.0
|
||||
def yMaximum(self): return 5658000.0
|
||||
|
||||
flurstueck_alkis(None, bbox=_Rect())
|
||||
|
||||
uri_str = mock_wfs_layer_cls.call_args[0][0]
|
||||
self.assertIn("bbox=", uri_str.lower())
|
||||
|
||||
# ------------------------------------------------------------------ #
|
||||
# 9. Rückwärtskompatibilität: alle neuen Params optional #
|
||||
# ------------------------------------------------------------------ #
|
||||
@patch("sn_verfahrensgebiet.functions.flurstueck_alkis.QgsVectorLayer")
|
||||
@patch("sn_verfahrensgebiet.functions.flurstueck_alkis.QgsProject.instance")
|
||||
@patch("sn_verfahrensgebiet.functions.flurstueck_alkis.ask_text")
|
||||
def test_backwards_compatible_no_new_params(
|
||||
self, mock_ask_text, mock_project, mock_wfs_layer_cls
|
||||
):
|
||||
"""flurstueck_alkis(tab) ohne neue Parameter → kein Fehler."""
|
||||
mock_ask_text.return_value = ("0000", True)
|
||||
mock_project.return_value = _DummyProject()
|
||||
mock_wfs_layer_cls.return_value = _DummyLayer(valid=True)
|
||||
|
||||
layer, status = flurstueck_alkis(None)
|
||||
|
||||
self.assertIsNotNone(layer)
|
||||
self.assertEqual(status, LoadStatus.FIRST)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user