fix: Testlauf-Export bei DWG-Tests ohne doppelten Dateinamen

Nach vla-saveas ist die Zeichnung benannt, export:dwg-praefix setzt
"<name>_tests_" selbst davor - SSG_RUN_ALL_TESTS hatte ihn schon im
Namen. Ergebnis war "<name>_tests_<name>_tests_export.csv" fuer
foerderer/linienzug/gefaellestrecke, das Warten lief ins Timeout und
die Python-Pruefungen (test_foerderer/test_gefaellestrecke) wurden
mangels Datei still uebersprungen. testrun:ohne-praefix zieht den
Praefix vor dem Umbiegen der Dateinamen ab (DXF-Tests unveraendert).

doc/todo.md: erledigten Eintrag "Statisches Inventar veraltet" entfernt
(test_vf_headless_statisch.py ist seit 0babf78 gruen).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-26 10:47:10 +01:00
parent 8db446ce0f
commit 2befdf2c33
2 changed files with 25 additions and 9 deletions
-5
View File
@@ -70,11 +70,6 @@ Stand: 2026-10-26. Wird woechentlich (freitags) mit der Doku geprueft, siehe
## 6. Tests ## 6. Tests
- **Statisches Inventar veraltet**: `tests/test_vf_headless_statisch.py`
(`test_alert_nur_in_interaktiv_pfaden`, `test_eingabe_fundstellen_unveraendert`)
- das eingecheckte Soll-Inventar `ALERT_ERLAUBT`/`EINGABE_ERLAUBT` kennt die
neueren Funktionen (`vfl-body-abschluss`, `vflw-gruppe-*-impl` ...) nicht.
Inventar nach Pruefung aktualisieren.
- **`tests/test_vf_geometrie.py`** braucht BricsCAD-erzeugte DXF-Referenzdaten, - **`tests/test_vf_geometrie.py`** braucht BricsCAD-erzeugte DXF-Referenzdaten,
die headless fehlen -> schlaegt ohne vorherigen CAD-Lauf fehl. die headless fehlen -> schlaegt ohne vorherigen CAD-Lauf fehl.
- CAD-Laeufe `TEST_VF_SPEC` und `VF_SPEC_BAU` + `tests/test_vf_spec.py` - CAD-Laeufe `TEST_VF_SPEC` und `VF_SPEC_BAU` + `tests/test_vf_spec.py`
+25 -4
View File
@@ -69,7 +69,17 @@
;; --- Hilfsfunktion: String-Wert aus JSON-Objekt-Zeile lesen --- ;; --- Hilfsfunktion: String-Wert aus JSON-Objekt-Zeile lesen ---
;; Sucht "key": "value" in obj-str und gibt value zurueck. ;; Sucht "key": "value" in obj-str und gibt value zurueck.
;; Rueckgabe: String (nicht leer) oder nil (key fehlt, null, leer). ;; Rueckgabe: String (nicht leer) oder nil (key fehlt, null, leer).
(defun alltests:get-str (obj-str key / pat pos val-start val-end val) ;; Dateiname ohne fuehrenden Praefix (sonst unveraendert). Gegenstueck zu
;; export:dwg-praefix, den der Export selbst vor den Namen setzt.
(defun testrun:ohne-praefix (dateiname praefix)
(if (and praefix
(/= praefix "")
(> (strlen dateiname) (strlen praefix))
(= (strcase (substr dateiname 1 (strlen praefix))) (strcase praefix)))
(substr dateiname (1+ (strlen praefix)))
dateiname))
(defun alltests:get-str(obj-str key / pat pos val-start val-end val)
(setq pat (strcat "\"" key "\": \"")) (setq pat (strcat "\"" key "\": \""))
(setq pos (vl-string-search pat obj-str)) (setq pos (vl-string-search pat obj-str))
(if pos (if pos
@@ -151,7 +161,8 @@
namen befehl datei export-fn new-doc namen befehl datei export-fn new-doc
out-path dwg-pfad dxf-pfad old-json test-result out-path dwg-pfad dxf-pfad old-json test-result
old-filenames csv-name sivas-name csv-pfad old-filenames csv-name sivas-name csv-pfad
sivas-pfad csv-ok sivas-ok old-filedia) sivas-pfad csv-ok sivas-ok old-filedia
praefix)
(setq tests-pfad (strcat (getenv "DXFMAKRO") "/tests")) (setq tests-pfad (strcat (getenv "DXFMAKRO") "/tests"))
(setq tests-out-dir (strcat tests-pfad "/output")) (setq tests-out-dir (strcat tests-pfad "/output"))
@@ -328,12 +339,22 @@
;; Nur die beiden CSV-Namen ersetzen, alle uebrigen Keys ;; Nur die beiden CSV-Namen ersetzen, alle uebrigen Keys
;; (z.B. kreisel_weichen_datei) unveraendert uebernehmen - ;; (z.B. kreisel_weichen_datei) unveraendert uebernehmen -
;; eine hart nachgebaute Liste verliert sonst neue Keys. ;; eine hart nachgebaute Liste verliert sonst neue Keys.
;; Nach vla-saveas (save "dwg") ist die Zeichnung benannt
;; (DWGTITLED=1, DWGNAME=<name>_tests.dwg), und der Export
;; setzt selbst "<name>_tests_" davor (export:dwg-praefix).
;; Diesen Praefix hier abziehen, sonst entsteht
;; "<name>_tests_<name>_tests_export.csv" und das Warten auf
;; csv-pfad laeuft ins Timeout. DXFOUT benennt die Zeichnung
;; nicht um -> Praefix leer, Name bleibt vollstaendig.
(setq praefix (export:dwg-praefix))
(setq old-filenames *export-filenames*) (setq old-filenames *export-filenames*)
(setq *export-filenames* (setq *export-filenames*
(mapcar (mapcar
'(lambda (p) '(lambda (p)
(cond ((= (car p) "sivas_csv") (cons "sivas_csv" sivas-name)) (cond ((= (car p) "sivas_csv")
((= (car p) "csv_csv") (cons "csv_csv" csv-name)) (cons "sivas_csv" (testrun:ohne-praefix sivas-name praefix)))
((= (car p) "csv_csv")
(cons "csv_csv" (testrun:ohne-praefix csv-name praefix)))
(T p))) (T p)))
old-filenames)) old-filenames))