From 20dd4894684ad84caa077af14bea6ead1dc5df48 Mon Sep 17 00:00:00 2001 From: Michael Stangl Date: Thu, 25 Jun 2026 19:43:00 +0200 Subject: [PATCH] =?UTF-8?q?omniflo=20Cleanup=20Routine=20rausgeworfen.=20?= =?UTF-8?q?=C3=9Cbernimmt=20jetzt=20das=20Zentralle=20all=5Ftests.lsp.=20A?= =?UTF-8?q?nsonsten=20geht=20der=20omniflo=20csv=20Export=20nicht=20mehr.?= =?UTF-8?q?=20Kreisel=20Basisdatensatz=20entfernt.=20Nicht=20mehr=20in=20d?= =?UTF-8?q?er=20Form=20zum=20test=20der=20Kreiselmodule=20n=C3=B6tig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/run_tests.bat | 56 +++++----------------------------------- menu/SSG_LIB.mnu | 3 +-- tests/create_testbase.py | 30 +-------------------- tests/test_omniflo.lsp | 40 ---------------------------- 4 files changed, 8 insertions(+), 121 deletions(-) diff --git a/bin/run_tests.bat b/bin/run_tests.bat index 93d63bc..faa7740 100644 --- a/bin/run_tests.bat +++ b/bin/run_tests.bat @@ -3,16 +3,12 @@ REM ================================================================ REM run_tests.bat - Testausfuehrung fuer SSG_LIB REM REM Schalter: -REM --create Erzeugt Basis-DXF-Dateien (Testgrundlage) REM --check Fuehrt pytest-Validierung aus REM (ohne) Zeigt Hilfe an REM 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 test_kreisel.py -REM bin\run_tests.bat --create --check REM ================================================================ REM Umgebung setzen @@ -25,26 +21,15 @@ if exist "%DXFMAKRO%\.venv\Scripts\activate.bat" ( echo WARNUNG: .venv nicht gefunden - pytest muss im PATH sein! ) -set DO_CREATE=0 set DO_CHECK=0 -set CREATE_ARG= set CHECK_ARG= REM Argumente parsen :parse_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" ( set DO_CHECK=1 - if not "%~2"=="" if not "%~2"=="--create" ( + if not "%~2"=="" ( set "CHECK_ARG=%~2" shift ) @@ -55,32 +40,7 @@ echo Unbekannter Schalter: %~1 goto :show_help :after_args -if %DO_CREATE%==0 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. -) +if %DO_CHECK%==0 goto :show_help REM ================================================================ REM --check: pytest-Validierung @@ -123,18 +83,14 @@ exit /b 0 :show_help echo. -echo Aufruf: bin\run_tests.bat [--create [modul]] [--check [testdatei]] +echo Aufruf: bin\run_tests.bat --check [testdatei] echo. 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 --create --check Beides nacheinander echo. echo Workflow: -echo 1. bin\run_tests.bat --create -echo 2. In BricsCAD: TESTRUN "kreisel" -echo 3. bin\run_tests.bat --check +echo 1. In BricsCAD: SSG_RUN_ALL_TESTS ausfuehren +echo 2. bin\run_tests.bat --check echo. exit /b 1 diff --git a/menu/SSG_LIB.mnu b/menu/SSG_LIB.mnu index cfa8714..55f2bab 100644 --- a/menu/SSG_LIB.mnu +++ b/menu/SSG_LIB.mnu @@ -125,8 +125,7 @@ [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 [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 Export]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo.lsp")) TEST_OMNIFLO_EXPORT +[<-Omniflo]^C^C(load (strcat (getenv "DXFMAKRO") "/tests/test_omniflo.lsp")) TEST_OMNIFLO ***DOUBLECLICK [INSERT]^C^C(ssg-ensure "SSG_LIB_Commands") SSG_BLOCKEDIT diff --git a/tests/create_testbase.py b/tests/create_testbase.py index dfb655c..07199f6 100644 --- a/tests/create_testbase.py +++ b/tests/create_testbase.py @@ -23,35 +23,7 @@ TESTDATA_DIR = os.path.join(TESTS_DIR, "testdata") OUTPUT_DIR = os.path.join(TESTS_DIR, "output") -def create_kreisel_testbase(): - """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, -} +MODULES = {} def main(): diff --git a/tests/test_omniflo.lsp b/tests/test_omniflo.lsp index 4ddb028..f144cdc 100644 --- a/tests/test_omniflo.lsp +++ b/tests/test_omniflo.lsp @@ -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