38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
import unittest
|
|
from pathlib import Path
|
|
|
|
import ezdxf
|
|
|
|
from tests.python.support.paths import add_repo_path
|
|
from tests.python.support.tmp_root import temporary_directory
|
|
|
|
add_repo_path("skills/dxf/scripts")
|
|
|
|
from dxf.render_payload import build_dxf_render_payload
|
|
|
|
|
|
class CadpyDxfTests(unittest.TestCase):
|
|
def test_build_dxf_render_payload_supports_straight_lwpolyline(self) -> None:
|
|
with temporary_directory(prefix="tmp-cad-dxf-") as tmpdir:
|
|
dxf_path = Path(tmpdir) / "outline.dxf"
|
|
doc = ezdxf.new("R2010")
|
|
modelspace = doc.modelspace()
|
|
modelspace.add_lwpolyline(
|
|
[(0.0, 0.0), (10.0, 0.0), (10.0, 5.0), (0.0, 5.0)],
|
|
close=True,
|
|
dxfattribs={"layer": "CUT"},
|
|
)
|
|
doc.saveas(dxf_path)
|
|
|
|
payload = build_dxf_render_payload(dxf_path, file_ref="test/outline.dxf")
|
|
|
|
self.assertEqual(4, payload["counts"]["paths"])
|
|
self.assertEqual(0, payload["counts"]["circles"])
|
|
self.assertEqual(4, len(payload["geometry"]["lines"]))
|
|
self.assertEqual(10.0, payload["bounds"]["width"])
|
|
self.assertEqual(5.0, payload["bounds"]["height"])
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|