Tests + Bau-Pfad-Alert: 4 Baseline-Failures behoben
test_export_separatorliste.py (2 Failures, KeyError 'Separatorlist'): der Test pruefte noch das alte Merkmal "Separatorlist" (nur SEP-Eintraege). write_ separatorliste_merkmale fuellt seit dem Umbau das Top-Level-Feld item["trackids"] (CSV-Spalte "TrackIds") mit AS + Separatoren + ES in Baureihenfolge. Tests auf die neue API/Semantik angepasst (empirisch verifiziert: "0054, 0052, 0053, 0055"). vf_linienzug.lsp - echter Fund des statischen Waechters: vfl-body-abschluss setzte am "Kettenende nicht baubar"-Zweig ein (alert ...) im BAU-Pfad (blockiert Batch/Headless). Auf vfl-meldung umgestellt (zeigt alert nur bei erlaubter GUI, sonst princ) - genau die Regel, die der Waechter erzwingt. test_vf_headless_statisch.py (2 Failures): Soll-Inventar an den aktuellen Code angeglichen - 18 legitime neue Wizard-/Frage-Dialoge (vflw-gruppe-*-impl, vflw-m2-*-impl, vfl-frage-ist-*) + vfl-ks-aus-hz-an-punkt (ssget, Zeichnung durchsuchen) ergaenzt, vflw-gruppe-horizontal-impl entfernt (weg im Code), vfl-edit-ent auf alert:2 (linienzug2-Abweisung, harter Schnitt). Suite: 11 -> 7 failed. Verbleibend NICHT hier: test_hundm05.py (auf Wunsch ausgenommen) + test_vf_geometrie.py (6x, gebautes HundM05-DXF weicht von der Referenz ab - braucht fachliches Urteil ueber die neue Geometrie, nicht blind die Referenz ueberschreiben). 243/243 LISP-Unit-Tests gruen. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
8be256fb5a
commit
0babf78789
@@ -5279,11 +5279,13 @@
|
||||
(t (ssg-textf "vfl-vorschlag-nur-auf" (list (rtos hoehe-auf 2 0))))))))
|
||||
(princ (ssg-textf "vfl-fehler-rest-nicht-baubar-ohne-vorschlag"
|
||||
(list (rtos hn 2 0) (rtos dL 2 0) (rtos dH 2 0) richtn))))
|
||||
;; Kurze 2-Punkte-Zusammenfassung zusaetzlich als Alert-Popup (nicht
|
||||
;; nur im Konsolen-Log) - zweiter Punkt nur, wenn Stufe 2 ueberhaupt
|
||||
;; Kurze 2-Punkte-Zusammenfassung zusaetzlich als Meldung (nicht nur
|
||||
;; im Konsolen-Log) - zweiter Punkt nur, wenn Stufe 2 ueberhaupt
|
||||
;; versucht wurde (siehe *vfl-stufe2-min*-vorschlag*, von
|
||||
;; vfl-stufe2-diagnose gesetzt).
|
||||
(alert
|
||||
;; vfl-stufe2-diagnose gesetzt). vfl-meldung statt alert: im Bau-Pfad
|
||||
;; darf keine modale Box einen Batch-/Headless-Lauf blockieren (zeigt
|
||||
;; das Alert nur bei erlaubter GUI, sonst princ - siehe vfl-meldung).
|
||||
(vfl-meldung
|
||||
(strcat
|
||||
(ssg-textf "vfl-alert-kettenende-p1" (list (rtos dL 2 0) (rtos dH 2 0) richtn))
|
||||
(cond
|
||||
|
||||
@@ -99,10 +99,15 @@ class TestSeparatorlisteMerkmal:
|
||||
|
||||
write_separatorliste_merkmale(items, sep_kette_by_key)
|
||||
|
||||
# write_separatorliste_merkmale fuellt seit dem Umbau das Top-Level-Feld
|
||||
# item["trackids"] (CSV-Spalte "TrackIds") mit AS-Ende + Separatoren +
|
||||
# ES-Ende in Baureihenfolge - NICHT mehr das Merkmal "Separatorlist" mit
|
||||
# nur den SEP-Eintraegen. AS/ES bekommen ueber build_strecke_schleus_items
|
||||
# eigene TeileIds (hier 0054/0055), die SEP-Proxies sind 0052/0053.
|
||||
strecke = next(it for it in items if it.get("teileid") == "0010")
|
||||
assert strecke["merkmale"]["Separatorlist"] == "0052, 0053", (
|
||||
f'Separatorlist = {strecke["merkmale"].get("Separatorlist")!r}, '
|
||||
f'erwartet "0052, 0053" (Baureihenfolge, AS/ES ausgeschlossen)')
|
||||
assert strecke.get("trackids") == "0054, 0052, 0053, 0055", (
|
||||
f'trackids = {strecke.get("trackids")!r}, '
|
||||
f'erwartet "0054, 0052, 0053, 0055" (AS, SEP, SEP, ES in Baureihenfolge)')
|
||||
|
||||
def test_vertauschte_proxy_reihenfolge_in_items_aendert_nichts(self):
|
||||
"""Die Reihenfolge in "items" (bzw. in welcher Reihenfolge die Proxy-
|
||||
@@ -127,15 +132,16 @@ class TestSeparatorlisteMerkmal:
|
||||
write_separatorliste_merkmale(items, sep_kette_by_key)
|
||||
|
||||
strecke = next(it for it in items if it.get("teileid") == "0010")
|
||||
assert strecke["merkmale"]["Separatorlist"] == "0052, 0053"
|
||||
assert strecke.get("trackids") == "0054, 0052, 0053, 0055"
|
||||
|
||||
def test_strecke_ohne_sepliste_bleibt_unveraendert(self):
|
||||
"""Altbestand ohne "sepliste"-XDATA darf kein leeres/kaputtes
|
||||
Separatorlist-Merkmal bekommen - das Merkmal fehlt einfach."""
|
||||
TrackIds-Feld bekommen - das Feld fehlt einfach."""
|
||||
strecke = {
|
||||
"teileart": "ILS 2.0 Strecke",
|
||||
"teileid": "0020",
|
||||
"merkmale": {"Anzahl_Separator": "0", "Anzahl_Scanner": "0"},
|
||||
}
|
||||
write_separatorliste_merkmale([strecke], {})
|
||||
assert "trackids" not in strecke
|
||||
assert "Separatorlist" not in strecke["merkmale"]
|
||||
|
||||
@@ -144,7 +144,7 @@ ALERT_ERLAUBT = {
|
||||
"vfl-dlg-modus": 1, # dcl/vfl_edit.dcl fehlt
|
||||
"vfl-dlg-position": 1, # dito
|
||||
"vfl-edit-glied": 1, # "Glied nicht einzeln editierbar"
|
||||
"vfl-edit-ent": 1, # "kein Journal am Block"
|
||||
"vfl-edit-ent": 2, # "kein Journal am Block" + alte OBJS-linienzug2 abweisen
|
||||
}
|
||||
|
||||
|
||||
@@ -181,21 +181,40 @@ EINGABE_ERLAUBT = {
|
||||
"vflw-wahl-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-as-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-gefaelle-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-horizontal-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-punkt-hoehe-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-variokurve-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-winkel-seite-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-ziel-hoehe-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-gf-laenge-modus-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-gf-steigend-untermodus-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-gf-verteilung-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-ist-kettenende-2opt-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-ja-nein-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-naechstes-element-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-naechstes-im-vf-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-qc-winkel-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-richtung-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-sep-gf-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-startpunkt-typ-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-winkel-hoehen-impl": {"new_dialog": 1},
|
||||
"vflw-gruppe-winkel-wahl-impl": {"new_dialog": 1},
|
||||
"vflw-m2-lauf-anfang-impl": {"new_dialog": 1},
|
||||
"vflw-m2-lauf-abschluss-impl": {"new_dialog": 1},
|
||||
"vflw-seg-bogen-impl": {"new_dialog": 1},
|
||||
"vflw-seg-linie-m2-impl": {"new_dialog": 1},
|
||||
"vflw-seg-linie-m3-impl": {"new_dialog": 1},
|
||||
# --- Frage-Dialoge (Ja/Nein bzw. Menue-Gruppen, kein roher get*-Aufruf) ---
|
||||
"vfl-frage-ist-endpunkt": {"new_dialog": 1},
|
||||
"vfl-frage-ist-kettenende": {"new_dialog": 1},
|
||||
# --- Edit-Dialoge: nur per Doppelklick erreichbar ---
|
||||
"vfl-dlg-modus": {"new_dialog": 1, "alert": 1},
|
||||
"vfl-dlg-position": {"new_dialog": 1, "alert": 1},
|
||||
"vfl-glied-as-es-dialog": {"new_dialog": 1, "alert": 1},
|
||||
"vfl-glied-gf-bogen-dialog": {"new_dialog": 1, "alert": 1},
|
||||
"vfl-glied-vario-dialog": {"new_dialog": 1, "alert": 1},
|
||||
"vfl-edit-ent": {"alert": 1},
|
||||
# vfl-edit-ent: alert 1 = "kein Journal", alert 2 = alte OBJS-linienzug2-
|
||||
# Bloecke abweisen (harter Schnitt, vfl-edit-m2-obsolet).
|
||||
"vfl-edit-ent": {"alert": 2},
|
||||
"vfl-edit-glied": {"alert": 1},
|
||||
"vfl-meldung": {"alert": 1},
|
||||
# --- reine Benutzer-Befehle (kein Bau-Pfad, nicht journalisiert) ---
|
||||
@@ -205,6 +224,7 @@ EINGABE_ERLAUBT = {
|
||||
"c:Vario_Kette_Merge": {"entsel": 1},
|
||||
# --- Zeichnung durchsuchen, keine Benutzerfrage ---
|
||||
"vfl-kette-sammle-alle": {"ssget": 1},
|
||||
"vfl-ks-aus-hz-an-punkt": {"ssget": 1},
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user