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
|
# Copyright (c) 2020, Manfred Moitzi
# License: MIT License
import pytest
import os
import ezdxf
from ezdxf.audit import AuditError
def test_find_orphaned_layouts():
doc = ezdxf.new()
# Construct an orphaned LAYOUT entity:
# Use proper owner, else we get audit error: INVALID_OWNER_HANDLE
owner = doc.rootdict["ACAD_LAYOUT"].dxf.handle
layout = doc.objects.new_entity(
"LAYOUT", dxfattribs={"name": "Orphaned", "owner": owner}
)
auditor = doc.audit()
assert len(auditor.fixes) == 1
assert auditor.fixes[0].code == AuditError.ORPHANED_LAYOUT_ENTITY
assert layout.is_alive is False
def test_find_orphaned_block_record():
doc = ezdxf.new()
# Construct an orphaned paperspace layout BLOCK_RECORD:
doc.blocks.new("*Paper_Space99")
auditor = doc.audit()
assert len(auditor.fixes) == 1
assert (
auditor.fixes[0].code
== AuditError.ORPHANED_PAPER_SPACE_BLOCK_RECORD_ENTITY
)
assert "*Paper_Space99" not in doc.blocks
@pytest.fixture
def MODEL_path() -> str:
return os.path.join(os.path.dirname(__file__), "data", "MODEL.dxf")
def test_load_MODEL(MODEL_path):
doc = ezdxf.readfile(MODEL_path)
msp = doc.modelspace()
assert msp.dxf.name == "MODEL", "Keep original uppercase name."
assert "MODEL" in doc.rootdict["ACAD_LAYOUT"]
assert "MODEL" in doc.layouts, "Check name as case insensitive string"
assert "Model" in doc.layouts, "Check name as case insensitive string"
if __name__ == "__main__":
pytest.main([__file__])
|