Spaces:
Sleeping
Sleeping
File size: 2,480 Bytes
2330e12 e660ef7 2330e12 b9e909b 2330e12 b9e909b e660ef7 2330e12 b9e909b 2330e12 b9e909b e660ef7 2330e12 b9e909b 2330e12 b9e909b 2330e12 b9e909b e660ef7 2330e12 b9e909b 2330e12 b9e909b e660ef7 2330e12 b9e909b 2330e12 e660ef7 2330e12 e660ef7 2330e12 e660ef7 2330e12 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | """Tests for Pydantic model_dump() serialization on result models."""
from core.executor import ExecutionResult
from core.validator import CNCValidationResult, CNCIssue
from core.cam import CAMResult
class TestExecutionResultDump:
def test_success(self):
r = ExecutionResult(
success=True, volume=6000.0, bounding_box=(10.0, 20.0, 30.0),
face_count=6, edge_count=12,
)
d = r.model_dump(by_alias=True)
assert d["success"] is True
assert d["volume_mm3"] == 6000.0
assert d["face_count"] == 6
assert d["error"] is None
# Excluded fields should not appear
assert "result" not in d
assert "code" not in d
assert "stdout" not in d
def test_failure(self):
r = ExecutionResult(success=False, error="syntax error")
d = r.model_dump(by_alias=True)
assert d["success"] is False
assert d["error"] == "syntax error"
def test_bounding_box_alias(self):
r = ExecutionResult(success=True, bounding_box=(10.0, 20.0, 30.0))
d = r.model_dump(by_alias=True)
assert "bounding_box_mm" in d
assert "bounding_box" not in d
class TestValidationResultDump:
def test_basic(self):
r = CNCValidationResult(
part_name="test",
machinable=True,
issues=[CNCIssue("warning", "Size", "Part is large")],
)
d = r.model_dump()
assert d["machinable"] is True
assert d["axis_recommendation"] == "3-axis"
assert len(d["issues"]) == 1
assert d["issues"][0]["severity"] == "warning"
# Computed fields included
assert d["error_count"] == 0
assert d["warning_count"] == 1
# Excluded fields
assert "part_name" not in d
def test_empty_issues(self):
r = CNCValidationResult(part_name="test")
d = r.model_dump()
assert d["issues"] == []
assert d["error_count"] == 0
class TestCAMResultDump:
def test_success(self):
r = CAMResult(success=True, gcode="G21", operations=["pocket"], tool_config={"diameter": 6})
d = r.model_dump()
assert d["success"] is True
assert d["gcode"] == "G21"
assert d["operations"] == ["pocket"]
def test_failure(self):
r = CAMResult(success=False, error="not installed")
d = r.model_dump()
assert d["success"] is False
assert d["error"] == "not installed"
|