114 lines
3.6 KiB
Python
114 lines
3.6 KiB
Python
"""Tests for layer and block operations via ezdxf backend."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
pytestmark = pytest.mark.asyncio
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Layer tests
|
|
# ---------------------------------------------------------------------------
|
|
|
|
|
|
async def test_layer_create(backend):
|
|
result = await backend.layer_create("WALLS", color=1)
|
|
assert result.name == "WALLS"
|
|
assert result.color == 1
|
|
|
|
|
|
async def test_layer_list(backend):
|
|
await backend.layer_create("A")
|
|
await backend.layer_create("B")
|
|
layers = await backend.layer_list()
|
|
names = [lyr.name for lyr in layers]
|
|
assert "A" in names
|
|
assert "B" in names
|
|
|
|
|
|
async def test_layer_delete(backend):
|
|
await backend.layer_create("TEMP")
|
|
result = await backend.layer_delete("TEMP")
|
|
assert result.get("ok") is True
|
|
layers = await backend.layer_list()
|
|
names = [lyr.name for lyr in layers]
|
|
assert "TEMP" not in names
|
|
|
|
|
|
async def test_layer_set_current(backend):
|
|
await backend.layer_create("CURRENT_TEST")
|
|
result = await backend.layer_set_current("CURRENT_TEST")
|
|
assert result.get("ok") is True
|
|
|
|
|
|
async def test_layer_modify(backend):
|
|
await backend.layer_create("MOD_LAYER", color=1)
|
|
result = await backend.layer_modify("MOD_LAYER", color=3)
|
|
assert result.color == 3
|
|
|
|
|
|
async def test_layer_freeze_thaw(backend):
|
|
await backend.layer_create("FREEZE_TEST")
|
|
result = await backend.layer_freeze("FREEZE_TEST")
|
|
assert result.get("ok") is True
|
|
result = await backend.layer_thaw("FREEZE_TEST")
|
|
assert result.get("ok") is True
|
|
|
|
|
|
async def test_layer_lock_unlock(backend):
|
|
await backend.layer_create("LOCK_TEST")
|
|
result = await backend.layer_lock("LOCK_TEST")
|
|
assert result.get("ok") is True
|
|
result = await backend.layer_unlock("LOCK_TEST")
|
|
assert result.get("ok") is True
|
|
|
|
|
|
async def test_layer_hide_show(backend):
|
|
await backend.layer_create("VIS_TEST")
|
|
result = await backend.layer_hide("VIS_TEST")
|
|
assert result.get("ok") is True
|
|
result = await backend.layer_show("VIS_TEST")
|
|
assert result.get("ok") is True
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Block tests
|
|
# ---------------------------------------------------------------------------
|
|
|
|
|
|
async def test_block_create_and_list(backend):
|
|
line = await backend.entity_create_line(0, 0, 10, 0)
|
|
circle = await backend.entity_create_circle(5, 5, 3)
|
|
result = await backend.block_create_from_entities(
|
|
"MY_BLOCK", [line.handle, circle.handle], base_x=0, base_y=0
|
|
)
|
|
assert result.get("ok") is True
|
|
blocks = await backend.block_list()
|
|
block_names = [b.name for b in blocks]
|
|
assert "MY_BLOCK" in block_names
|
|
|
|
|
|
async def test_block_insert(backend):
|
|
line = await backend.entity_create_line(0, 0, 10, 0)
|
|
await backend.block_create_from_entities("INS_BLOCK", [line.handle])
|
|
result = await backend.block_insert("INS_BLOCK", 50, 50)
|
|
assert result.handle
|
|
assert result.type == "INSERT"
|
|
|
|
|
|
async def test_block_explode(backend):
|
|
line = await backend.entity_create_line(0, 0, 10, 0)
|
|
await backend.block_create_from_entities("EXPLODE_BLK", [line.handle])
|
|
ref = await backend.block_insert("EXPLODE_BLK", 0, 0)
|
|
result = await backend.block_explode(ref.handle)
|
|
assert result.get("ok") is True
|
|
|
|
|
|
async def test_block_get_attributes(backend):
|
|
line = await backend.entity_create_line(0, 0, 10, 0)
|
|
await backend.block_create_from_entities("ATTR_BLK", [line.handle])
|
|
ref = await backend.block_insert("ATTR_BLK", 0, 0)
|
|
attrs = await backend.block_get_attributes(ref.handle)
|
|
assert isinstance(attrs, dict)
|