omniflo unittest liest aktuell nur die json Exports von Bricscad
This commit is contained in:
+4
-5
@@ -29,7 +29,6 @@ tests/output/ |
|
||||
(keine Zeichnung) (save: null) |
|
||||
omniflo_results.json (immer) |
|
||||
omniflo_tests.dxf (save: dxf) |
|
||||
omniflo_export.csv |
|
||||
|
|
||||
bin\run_tests.bat --runall
|
||||
|
|
||||
@@ -105,7 +104,6 @@ tests/
|
||||
kseinaus_tests.dxf
|
||||
omniflo_results.json
|
||||
omniflo_tests.dxf
|
||||
omniflo_export.csv # CSV-Export (Omniflo-spezifisch)
|
||||
reference/ # Abgenommene Referenzdaten (in Git)
|
||||
kreisel_ref.dxf
|
||||
...
|
||||
@@ -173,7 +171,7 @@ Die Python-Tests pruefen:
|
||||
- **Attribut-Werte** gegen die Testdefinitionen (JSON)
|
||||
- **DXF-Geometrie** mit ezdxf (Bloecke, Positionen, Radien)
|
||||
- **Referenz-Vergleich** gegen abgenommene Referenz-DXF
|
||||
- **CSV-Export** (Omniflo: Spalten, Merkmale, Datentypen)
|
||||
- **CSV-Export** ueber `lib/export_csv.py` (Omniflo: Spalten, Merkmale, Sum-Zeile, Datentypen)
|
||||
|
||||
Tests, deren Eingabedaten fehlen (z.B. kein BricsCAD-Lauf), werden automatisch uebersprungen (`pytest.skip`).
|
||||
|
||||
@@ -381,8 +379,9 @@ def <modul>_ref_dxf():
|
||||
|
||||
| Klasse | Prueft |
|
||||
|---|---|
|
||||
| `TestOmnifloExportUnit` | Mock-Export: Merkmale, Datentypen, Vollstaendigkeit (ohne BricsCAD) |
|
||||
| `TestOmnifloExportCSV` | CSV aus BricsCAD: Header, Spalten, JSON-Merkmale |
|
||||
| `TestOmnifloExportUnit` | Mock-Export ueber `lib/export_csv.py`: Merkmale, Datentypen, Sum-Zeile, Vollstaendigkeit (ohne BricsCAD) |
|
||||
| `TestOmnifloResults` | omniflo_results.json aus BricsCAD: Testfaelle vollstaendig, Status OK, Hoehe |
|
||||
| `TestOmnifloReferenceCSV` | CSV-Export aus `lib/export_csv.py` gegen abgenommene Referenz-CSV |
|
||||
|
||||
## Umgebungsvariablen
|
||||
|
||||
|
||||
+20
-17
@@ -32,8 +32,18 @@ def _reference_dir():
|
||||
|
||||
|
||||
def _load_json(path):
|
||||
with open(path, "r", encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
"""Laedt JSON, tolerant gegenueber BricsCAD-Ausgaben.
|
||||
|
||||
AutoLISP schreibt Dateien (write-line) im ANSI-Codepage des Systems,
|
||||
nicht in UTF-8 - Sonderzeichen (z.B. Grad-Zeichen in Beschreibungen)
|
||||
koennen daher nicht als UTF-8 dekodierbar sein. Fallback auf cp1252.
|
||||
"""
|
||||
try:
|
||||
with open(path, "r", encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
except UnicodeDecodeError:
|
||||
with open(path, "r", encoding="cp1252") as f:
|
||||
return json.load(f)
|
||||
|
||||
|
||||
# --- Foerderer Fixtures ---
|
||||
@@ -68,22 +78,15 @@ def omniflo_testdata():
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def omniflo_csv():
|
||||
"""Laedt den Inhalt der omniflo_export.csv aus output/."""
|
||||
import csv as _csv
|
||||
path = os.path.join(_output_dir(), "omniflo_export.csv")
|
||||
def omniflo_results():
|
||||
"""Laedt die Omniflo-Ergebnisse aus output/omniflo_results.json."""
|
||||
path = os.path.join(_output_dir(), "omniflo_results.json")
|
||||
if not os.path.exists(path):
|
||||
pytest.skip(
|
||||
"omniflo_export.csv nicht vorhanden - "
|
||||
"TEST_OMNIFLO_EXPORT in BricsCAD ausfuehren"
|
||||
)
|
||||
rows = []
|
||||
with open(path, "r", encoding="utf-8") as f:
|
||||
reader = _csv.reader(f, delimiter=";")
|
||||
header = next(reader)
|
||||
for row in reader:
|
||||
rows.append(row)
|
||||
return {"header": header, "rows": rows}
|
||||
pytest.skip("omniflo_results.json nicht vorhanden - TEST_OMNIFLO in BricsCAD ausfuehren")
|
||||
data = _load_json(path)
|
||||
if not data:
|
||||
pytest.skip("omniflo_results.json ist leer")
|
||||
return data
|
||||
|
||||
|
||||
# --- Kreisel Fixtures ---
|
||||
|
||||
Reference in New Issue
Block a user