omniflo Cleanup Routine rausgeworfen. Übernimmt jetzt das Zentralle all_tests.lsp. Ansonsten geht der omniflo csv Export nicht mehr. Kreisel Basisdatensatz entfernt. Nicht mehr in der Form zum test der Kreiselmodule nötig

This commit is contained in:
2026-06-25 19:43:00 +02:00
parent d961c81caf
commit 20dd489468
4 changed files with 8 additions and 121 deletions
+5 -49
View File
@@ -3,16 +3,12 @@ REM ================================================================
REM run_tests.bat - Testausfuehrung fuer SSG_LIB REM run_tests.bat - Testausfuehrung fuer SSG_LIB
REM REM
REM Schalter: REM Schalter:
REM --create Erzeugt Basis-DXF-Dateien (Testgrundlage)
REM --check Fuehrt pytest-Validierung aus REM --check Fuehrt pytest-Validierung aus
REM (ohne) Zeigt Hilfe an REM (ohne) Zeigt Hilfe an
REM REM
REM Beispiele: REM Beispiele:
REM bin\run_tests.bat --create
REM bin\run_tests.bat --create kreisel
REM bin\run_tests.bat --check REM bin\run_tests.bat --check
REM bin\run_tests.bat --check test_kreisel.py REM bin\run_tests.bat --check test_kreisel.py
REM bin\run_tests.bat --create --check
REM ================================================================ REM ================================================================
REM Umgebung setzen REM Umgebung setzen
@@ -25,26 +21,15 @@ if exist "%DXFMAKRO%\.venv\Scripts\activate.bat" (
echo WARNUNG: .venv nicht gefunden - pytest muss im PATH sein! echo WARNUNG: .venv nicht gefunden - pytest muss im PATH sein!
) )
set DO_CREATE=0
set DO_CHECK=0 set DO_CHECK=0
set CREATE_ARG=
set CHECK_ARG= set CHECK_ARG=
REM Argumente parsen REM Argumente parsen
:parse_args :parse_args
if "%~1"=="" goto :after_args if "%~1"=="" goto :after_args
if "%~1"=="--create" (
set DO_CREATE=1
if not "%~2"=="" if not "%~2"=="--check" (
set "CREATE_ARG=%~2"
shift
)
shift
goto :parse_args
)
if "%~1"=="--check" ( if "%~1"=="--check" (
set DO_CHECK=1 set DO_CHECK=1
if not "%~2"=="" if not "%~2"=="--create" ( if not "%~2"=="" (
set "CHECK_ARG=%~2" set "CHECK_ARG=%~2"
shift shift
) )
@@ -55,32 +40,7 @@ echo Unbekannter Schalter: %~1
goto :show_help goto :show_help
:after_args :after_args
if %DO_CREATE%==0 if %DO_CHECK%==0 goto :show_help if %DO_CHECK%==0 goto :show_help
REM ================================================================
REM --create: Basis-DXF erzeugen
REM ================================================================
if %DO_CREATE%==1 (
echo.
echo ================================================================
echo TESTBASE ERZEUGEN
echo ================================================================
if not "%CREATE_ARG%"=="" (
echo Modul: %CREATE_ARG%
python "%DXFM_TESTS%\create_testbase.py" %CREATE_ARG%
) else (
echo Alle Module
python "%DXFM_TESTS%\create_testbase.py"
)
if errorlevel 1 (
echo.
echo FEHLER: create_testbase.py fehlgeschlagen!
exit /b 1
)
echo.
echo Basis-DXF erfolgreich erstellt.
echo Naechster Schritt: BricsCAD oeffnen und TESTRUN ausfuehren.
)
REM ================================================================ REM ================================================================
REM --check: pytest-Validierung REM --check: pytest-Validierung
@@ -123,18 +83,14 @@ exit /b 0
:show_help :show_help
echo. echo.
echo Aufruf: bin\run_tests.bat [--create [modul]] [--check [testdatei]] echo Aufruf: bin\run_tests.bat --check [testdatei]
echo. echo.
echo Schalter: echo Schalter:
echo --create Erzeugt Basis-DXF-Dateien fuer alle Module
echo --create kreisel Erzeugt nur Kreisel-Basis-DXF
echo --check Fuehrt pytest-Validierung fuer alle Module aus echo --check Fuehrt pytest-Validierung fuer alle Module aus
echo --check test_kreisel.py Validiert nur Kreisel-Tests echo --check test_kreisel.py Validiert nur Kreisel-Tests
echo --create --check Beides nacheinander
echo. echo.
echo Workflow: echo Workflow:
echo 1. bin\run_tests.bat --create echo 1. In BricsCAD: SSG_RUN_ALL_TESTS ausfuehren
echo 2. In BricsCAD: TESTRUN "kreisel" echo 2. bin\run_tests.bat --check
echo 3. bin\run_tests.bat --check
echo. echo.
exit /b 1 exit /b 1
+1 -2
View File
@@ -125,8 +125,7 @@
[Kreisel]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_kreisel.lsp")) TEST_KREISEL [Kreisel]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_kreisel.lsp")) TEST_KREISEL
[Foerderer]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_foerderer.lsp")) TEST_FOERDERER [Foerderer]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_foerderer.lsp")) TEST_FOERDERER
[KS EIN/AUS]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_ks.lsp")) TEST_KSEINAUS [KS EIN/AUS]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_ks.lsp")) TEST_KSEINAUS
[Omniflo]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo.lsp")) TEST_OMNIFLO [<-Omniflo]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo.lsp")) TEST_OMNIFLO
[<-Omniflo Export]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo.lsp")) TEST_OMNIFLO_EXPORT
***DOUBLECLICK ***DOUBLECLICK
[INSERT]^C^C(ssg-ensure "SSG_LIB_Commands") SSG_BLOCKEDIT [INSERT]^C^C(ssg-ensure "SSG_LIB_Commands") SSG_BLOCKEDIT
+1 -29
View File
@@ -23,35 +23,7 @@ TESTDATA_DIR = os.path.join(TESTS_DIR, "testdata")
OUTPUT_DIR = os.path.join(TESTS_DIR, "output") OUTPUT_DIR = os.path.join(TESTS_DIR, "output")
def create_kreisel_testbase(): MODULES = {}
"""Erzeugt Basis-DXF fuer Kreisel-Tests mit Hilfslinien."""
doc = ezdxf.new("R2018")
msp = doc.modelspace()
z = 2500.0
# Horizontale Linienpaare (Abstand 5000mm in Y-Richtung)
msp.add_line((0, 0, z), (2000, 0, z),
dxfattribs={"layer": "S_LP", "color": 1})
msp.add_line((0, 5000, z), (2000, 5000, z),
dxfattribs={"layer": "S_LP", "color": 1})
# Vertikale Linienpaare (Abstand 5000mm in X-Richtung)
msp.add_line((0, 0, z), (0, 2000, z),
dxfattribs={"layer": "S_LP", "color": 1})
msp.add_line((5000, 0, z), (5000, 2000, z),
dxfattribs={"layer": "S_LP", "color": 1})
os.makedirs(OUTPUT_DIR, exist_ok=True)
out_path = os.path.join(OUTPUT_DIR, "kreisel_testbase.dxf")
doc.saveas(out_path)
print(f"[testbase] Kreisel-Basis-DXF erstellt: {out_path}")
return out_path
MODULES = {
"kreisel": create_kreisel_testbase,
}
def main(): def main():
-40
View File
@@ -100,46 +100,6 @@
) )
;; --- Post-Clean: Omniflo-Testbloecke aus der Zeichnung loeschen ---
;; Entfernt alle INSERT-Entities mit rein numerischen Blocknamen (Omniflo SivasNr)
;; sowie AP110-Geraden. Wird vom Test-Runner nach dem Export aufgerufen.
;; Rueckgabe: Anzahl geloeschter Bloecke
(defun omniflo:post-clean ( / ss-all i ename ed bname count)
(setq count 0)
(setq ss-all (ssget "X" (list (cons 0 "INSERT"))))
(if ss-all
(progn
(setq i 0)
(while (setq ename (ssname ss-all i))
(setq ed (entget ename))
(setq bname (cdr (assoc 2 ed)))
(if (or
;; Omniflo SivasNr: rein numerisch (beginnt mit Ziffer, kein Unterstrich)
(and (wcmatch bname "#*") (null (vl-string-search "_" bname)))
;; Omniflo Geraden
(wcmatch (strcase bname) "AP110*,AP_110*")
)
(progn
(entdel ename)
(setq count (1+ count))
)
)
(setq i (1+ i))
)
)
)
(princ (strcat "\n[OMNIFLO] Post-Clean: " (itoa count) " Bloecke entfernt."))
count
)
;; --- BricsCAD-Befehl: Omniflo-Ergebnisse exportieren ---
(defun c:TEST_OMNIFLO_EXPORT ( / tests-out-dir)
(setq tests-out-dir (strcat (getenv "DXFMAKRO") "/tests/output"))
(omniflo:export-results tests-out-dir)
(princ)
)
;; ============================================================ ;; ============================================================
;; C:TEST_OMNIFLO ;; C:TEST_OMNIFLO