Verfahrensgebietsprüfung auf Knickpunkte umgestellt
Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
@@ -17,9 +17,10 @@ Abbruchpfade:
|
||||
- Progress-Abbruch nach Schritt 1 → sofortiger sauberer Rückgabestatus
|
||||
|
||||
Flächenvergleich:
|
||||
- Übereinstimmung → show_info_dialog, keine Umringsprüfung
|
||||
- Abweichung + Nein → kein Umringsprüfungs-Aufruf
|
||||
- Abweichung + Ja → umringspruefung aufgerufen, Ergebnislayer ins Projekt
|
||||
- Übereinstimmung → show_info_dialog, keine Detailprüfung
|
||||
- Abweichung + abbrechen → kein Detailprüfungs-Aufruf
|
||||
- Abweichung + als_vg_laden → BROR umbenannt, als enriched_layer zurückgegeben
|
||||
- Abweichung + detailpruefung → lade_punktort_ta + knickpunkt_pruefung aufgerufen
|
||||
|
||||
Cleanup:
|
||||
- BROR-Layer wird bei Erfolg NICHT entfernt
|
||||
@@ -141,8 +142,10 @@ _PATCH_GET_VAR = f"{_MOD}.get_variable"
|
||||
_PATCH_PROGRESS = f"{_MOD}.create_progress_dialog"
|
||||
_PATCH_VERGLEICHE = f"{_MOD}._vergleiche_flaechen"
|
||||
_PATCH_SHOW_INFO = f"{_MOD}.show_info_dialog"
|
||||
_PATCH_ASK_YES_NO = f"{_MOD}.ask_yes_no"
|
||||
_PATCH_UMRING = f"{_MOD}.umringspruefung"
|
||||
_PATCH_ASK_DIALOG = f"{_MOD}.ask_detailpruefung_oder_vg_laden"
|
||||
_PATCH_GP_ALKIS = f"{_MOD}.lade_punktort_ta"
|
||||
_PATCH_KNICK = f"{_MOD}.knickpunkt_pruefung"
|
||||
_PATCH_EXTRAHIERE = f"{_MOD}._extrahiere_knickpunkte"
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
@@ -448,12 +451,12 @@ class TestVerfahrensgebietAlkisKomplett(unittest.TestCase):
|
||||
mock_vkz.assert_called_once_with(enriched, "")
|
||||
|
||||
# ------------------------------------------------------------------ #
|
||||
# Flächenvergleich – Abweichung + Nein
|
||||
# Flächenvergleich – Abweichung + Abbrechen
|
||||
# ------------------------------------------------------------------ #
|
||||
|
||||
@patch(_PATCH_PROGRESS)
|
||||
@patch(_PATCH_UMRING)
|
||||
@patch(_PATCH_ASK_YES_NO)
|
||||
@patch(_PATCH_KNICK)
|
||||
@patch(_PATCH_ASK_DIALOG)
|
||||
@patch(_PATCH_VERGLEICHE)
|
||||
@patch(_PATCH_VKZ)
|
||||
@patch(_PATCH_GET_VAR)
|
||||
@@ -463,11 +466,11 @@ class TestVerfahrensgebietAlkisKomplett(unittest.TestCase):
|
||||
@patch(_PATCH_GEM)
|
||||
@patch(_PATCH_FLST)
|
||||
@patch(_PATCH_VG_ALKIS)
|
||||
def test_flaechen_abweichung_nein_kein_umring(
|
||||
def test_flaechen_abweichung_abbrechen_kein_detailcheck(
|
||||
self, mock_vg, mock_flst, mock_gem, mock_proj, mock_select,
|
||||
mock_erstelle, mock_get_var, mock_vkz, mock_vergl, mock_ask, mock_umring, mock_prog,
|
||||
mock_erstelle, mock_get_var, mock_vkz, mock_vergl, mock_ask, mock_knick, mock_prog,
|
||||
):
|
||||
"""Abweichung + Nein → umringspruefung wird NICHT aufgerufen."""
|
||||
"""Abweichung + Abbrechen → knickpunkt_pruefung wird NICHT aufgerufen."""
|
||||
mock_proj.instance.return_value = _DummyProject()
|
||||
vg_layer = _make_layer(name="BauRaumOrdnungsrecht (ALKIS)")
|
||||
flst_layer = _make_layer(name="Flurstücke")
|
||||
@@ -480,23 +483,22 @@ class TestVerfahrensgebietAlkisKomplett(unittest.TestCase):
|
||||
mock_erstelle.return_value = (enriched, 3, 0)
|
||||
mock_get_var.return_value = ""
|
||||
mock_vergl.return_value = (1000.0, 800.0, False)
|
||||
mock_ask.return_value = False
|
||||
mock_ask.return_value = "abbrechen"
|
||||
mock_prog.return_value = _make_progress_mock()
|
||||
|
||||
result_enriched, _, _, status = verfahrensgebiet_alkis_komplett(None)
|
||||
|
||||
mock_umring.assert_not_called()
|
||||
mock_knick.assert_not_called()
|
||||
self.assertIs(result_enriched, enriched)
|
||||
self.assertEqual(status, LoadStatus.FIRST)
|
||||
|
||||
# ------------------------------------------------------------------ #
|
||||
# Flächenvergleich – Abweichung + Ja → Umringsprüfung
|
||||
# Flächenvergleich – Abweichung + Als VG laden
|
||||
# ------------------------------------------------------------------ #
|
||||
|
||||
@patch(_PATCH_PROGRESS)
|
||||
@patch(_PATCH_SHOW_INFO)
|
||||
@patch(_PATCH_UMRING)
|
||||
@patch(_PATCH_ASK_YES_NO)
|
||||
@patch(_PATCH_KNICK)
|
||||
@patch(_PATCH_ASK_DIALOG)
|
||||
@patch(_PATCH_VERGLEICHE)
|
||||
@patch(_PATCH_VKZ)
|
||||
@patch(_PATCH_GET_VAR)
|
||||
@@ -506,20 +508,18 @@ class TestVerfahrensgebietAlkisKomplett(unittest.TestCase):
|
||||
@patch(_PATCH_GEM)
|
||||
@patch(_PATCH_FLST)
|
||||
@patch(_PATCH_VG_ALKIS)
|
||||
def test_flaechen_abweichung_ja_startet_umringspruefung(
|
||||
def test_flaechen_abweichung_als_vg_laden(
|
||||
self, mock_vg, mock_flst, mock_gem, mock_proj, mock_select,
|
||||
mock_erstelle, mock_get_var, mock_vkz, mock_vergl, mock_ask,
|
||||
mock_umring, mock_info, mock_prog,
|
||||
mock_erstelle, mock_get_var, mock_vkz, mock_vergl, mock_ask, mock_knick, mock_prog,
|
||||
):
|
||||
"""Abweichung + Ja → umringspruefung aufgerufen, Ergebnislayer ins Projekt,
|
||||
Abschlussmeldung mit Konfliktanzahl."""
|
||||
"""Abweichung + Als VG laden → BROR-Layer wird umbenannt und als
|
||||
enriched_layer zurückgegeben; flst_layer und bror_layer sind None."""
|
||||
proj_inst = _DummyProject()
|
||||
mock_proj.instance.return_value = proj_inst
|
||||
|
||||
vg_layer = _make_layer(name="BauRaumOrdnungsrecht (ALKIS)")
|
||||
flst_layer = _make_layer(name="Flurstücke")
|
||||
enriched = _make_layer(name="Verfahrensgebiet", valid=True)
|
||||
ergebnis_layer = _make_layer(name="Umringsprüfung", lid="UMRING_L")
|
||||
vg_layer = _make_layer(name="BauRaumOrdnungsrecht (ALKIS)", lid="BROR_VG")
|
||||
flst_layer = _make_layer(name="Flurstücke")
|
||||
enriched = _make_layer(name="Verfahrensgebiet", valid=True)
|
||||
|
||||
mock_vg.return_value = (vg_layer, LoadStatus.FIRST, [])
|
||||
mock_gem.return_value = []
|
||||
@@ -528,17 +528,79 @@ class TestVerfahrensgebietAlkisKomplett(unittest.TestCase):
|
||||
mock_erstelle.return_value = (enriched, 3, 0)
|
||||
mock_get_var.return_value = ""
|
||||
mock_vergl.return_value = (1000.0, 800.0, False)
|
||||
mock_ask.return_value = True
|
||||
mock_umring.return_value = (ergebnis_layer, 4)
|
||||
mock_ask.return_value = "als_vg_laden"
|
||||
mock_prog.return_value = _make_progress_mock()
|
||||
|
||||
result_enriched, result_flst, result_bror, status = verfahrensgebiet_alkis_komplett(None)
|
||||
|
||||
mock_knick.assert_not_called()
|
||||
# BROR-Layer wird als enriched_layer zurückgegeben
|
||||
self.assertIs(result_enriched, vg_layer)
|
||||
self.assertIsNone(result_flst)
|
||||
self.assertIsNone(result_bror)
|
||||
self.assertEqual(status, LoadStatus.FIRST)
|
||||
# Name wurde auf VERF_LAYER_NAME geändert
|
||||
vg_layer.setName.assert_called()
|
||||
|
||||
# ------------------------------------------------------------------ #
|
||||
# Flächenvergleich – Abweichung + Detailprüfung
|
||||
# ------------------------------------------------------------------ #
|
||||
|
||||
@patch(_PATCH_PROGRESS)
|
||||
@patch(_PATCH_SHOW_INFO)
|
||||
@patch(_PATCH_EXTRAHIERE)
|
||||
@patch(_PATCH_KNICK)
|
||||
@patch(_PATCH_GP_ALKIS)
|
||||
@patch(_PATCH_ASK_DIALOG)
|
||||
@patch(_PATCH_VERGLEICHE)
|
||||
@patch(_PATCH_VKZ)
|
||||
@patch(_PATCH_GET_VAR)
|
||||
@patch(_PATCH_ERSTELLE)
|
||||
@patch(_PATCH_SELECT)
|
||||
@patch(_PATCH_PROJECT)
|
||||
@patch(_PATCH_GEM)
|
||||
@patch(_PATCH_FLST)
|
||||
@patch(_PATCH_VG_ALKIS)
|
||||
def test_flaechen_abweichung_detailpruefung_startet_knickpruefung(
|
||||
self, mock_vg, mock_flst, mock_gem, mock_proj, mock_select,
|
||||
mock_erstelle, mock_get_var, mock_vkz, mock_vergl, mock_ask,
|
||||
mock_gp, mock_knick, mock_extrahiere, mock_info, mock_prog,
|
||||
):
|
||||
"""Abweichung + Detailprüfung → lade_punktort_ta + knickpunkt_pruefung
|
||||
aufgerufen, Ergebnislayer ins Projekt, Abschlussmeldung mit Zählung."""
|
||||
proj_inst = _DummyProject()
|
||||
mock_proj.instance.return_value = proj_inst
|
||||
|
||||
vg_layer = _make_layer(name="BauRaumOrdnungsrecht (ALKIS)")
|
||||
flst_layer = _make_layer(name="Flurstücke")
|
||||
enriched = _make_layer(name="Verfahrensgebiet", valid=True)
|
||||
punktort_layer = _make_layer(name="PunktortTA", lid="PTA_L")
|
||||
ergebnis_layer = _make_layer(name="Knickpunktprüfung", lid="KNICK_L")
|
||||
|
||||
mock_vg.return_value = (vg_layer, LoadStatus.FIRST, [])
|
||||
mock_gem.return_value = []
|
||||
mock_flst.return_value = (flst_layer, LoadStatus.FIRST)
|
||||
mock_select.return_value = 3
|
||||
mock_erstelle.return_value = (enriched, 3, 0)
|
||||
mock_get_var.return_value = ""
|
||||
mock_vergl.return_value = (1000.0, 800.0, False)
|
||||
mock_ask.return_value = "detailpruefung"
|
||||
mock_extrahiere.return_value = [MagicMock(), MagicMock(), MagicMock()] # 3 Knickpunkte
|
||||
mock_gp.return_value = punktort_layer
|
||||
mock_knick.return_value = (ergebnis_layer, 2, 1, 0)
|
||||
mock_prog.return_value = _make_progress_mock()
|
||||
|
||||
result_enriched, _, _, status = verfahrensgebiet_alkis_komplett(None)
|
||||
|
||||
mock_umring.assert_called_once()
|
||||
mock_gp.assert_called_once()
|
||||
mock_knick.assert_called_once()
|
||||
self.assertIn(ergebnis_layer, proj_inst.added)
|
||||
mock_info.assert_called_once()
|
||||
self.assertIn("4", mock_info.call_args[0][1])
|
||||
self.assertIn("Konfliktstellen", mock_info.call_args[0][1])
|
||||
# Abschlussmeldung muss Zahlen enthalten
|
||||
info_text = mock_info.call_args[0][1]
|
||||
self.assertIn("3", info_text) # Anzahl Knickpunkte
|
||||
self.assertIn("2", info_text) # identisch
|
||||
self.assertIn("1", info_text) # kein_pta
|
||||
self.assertEqual(status, LoadStatus.FIRST)
|
||||
|
||||
# ------------------------------------------------------------------ #
|
||||
|
||||
Reference in New Issue
Block a user