Files
autocad-mcp-pro/tests/test_entity_creation.py
T
2026-04-27 12:20:57 +03:00

101 lines
2.9 KiB
Python

"""Tests for entity creation — all entity types via ezdxf backend."""
from __future__ import annotations
import pytest
pytestmark = pytest.mark.asyncio
async def test_create_circle(backend):
info = await backend.entity_create_circle(50, 50, 25)
assert info.handle
assert info.type == "CIRCLE"
got = await backend.entity_get(info.handle)
assert got.type == "CIRCLE"
assert got.properties.get("radius") == pytest.approx(25, abs=0.01)
async def test_create_arc(backend):
info = await backend.entity_create_arc(0, 0, 50, 0, 90)
assert info.handle
assert info.type == "ARC"
async def test_create_polyline(backend):
pts = [[0, 0], [100, 0], [100, 100], [0, 100]]
info = await backend.entity_create_polyline(pts, closed=True)
assert info.handle
assert info.type == "LWPOLYLINE"
async def test_create_polyline_open(backend):
pts = [[0, 0], [50, 50], [100, 0]]
info = await backend.entity_create_polyline(pts, closed=False)
assert info.handle
assert info.type == "LWPOLYLINE"
async def test_create_text(backend):
info = await backend.entity_create_text("Hello", 10, 20, height=5.0)
assert info.handle
assert info.type == "TEXT"
async def test_create_mtext(backend):
info = await backend.entity_create_mtext("Multi\\Pline Text", 0, 0, width=200)
assert info.handle
assert info.type == "MTEXT"
async def test_create_hatch(backend):
boundary = [[0, 0], [100, 0], [100, 100], [0, 100]]
info = await backend.entity_create_hatch("SOLID", boundary, scale=1.0, angle=0)
assert info.handle
assert info.type == "HATCH"
async def test_create_spline(backend):
pts = [[0, 0], [25, 50], [50, 25], [75, 75], [100, 0]]
info = await backend.entity_create_spline(pts)
assert info.handle
assert info.type == "SPLINE"
async def test_create_ellipse(backend):
info = await backend.entity_create_ellipse(50, 50, 40, 0, ratio=0.5)
assert info.handle
assert info.type == "ELLIPSE"
async def test_create_point(backend):
info = await backend.entity_create_point(10, 20)
assert info.handle
assert info.type == "POINT"
async def test_create_line_with_layer(backend):
await backend.layer_create("TEST_LAYER", color=1)
info = await backend.entity_create_line(0, 0, 100, 0, layer="TEST_LAYER")
assert info.handle
assert info.layer == "TEST_LAYER"
async def test_create_circle_with_color(backend):
info = await backend.entity_create_circle(0, 0, 10, color=3)
assert info.handle
got = await backend.entity_get(info.handle)
assert got.color == 3
async def test_create_entity_appears_in_list(backend):
await backend.entity_create_line(0, 0, 10, 0)
await backend.entity_create_circle(50, 50, 5)
await backend.entity_create_point(0, 0)
entities = await backend.entity_list()
assert len(entities) == 3
types = {e.type for e in entities}
assert "LINE" in types
assert "CIRCLE" in types
assert "POINT" in types