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:
+5
-49
@@ -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
@@ -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
|
||||||
|
|||||||
@@ -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():
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user