コード例 #1
0
def test_add_virtual_polyline_to_layout(doc, layout):
    polyline = Polyline()
    polyline.append_vertex((0, 0))
    layout.add_entity(polyline)
    assert factory.is_bound(polyline, doc) is True, \
        'POLYLINE must be bound to document'
    assert factory.is_bound(polyline.seqend, doc) is True, \
        'SEQEND must be bound to document'

    assert len(polyline) == 1
    assert factory.is_bound(polyline.vertices[0], doc) is True, \
        'VERTEX must be bound to document'
コード例 #2
0
    def test_copy_sub_dictionary(self, source: Dictionary):
        doc = source.doc
        source = doc.entitydb.duplicate_entity(source)
        sub_dict = source.add_new_dict("SUBDICT", hard_owned=True)
        sub_dict.add_dict_var("SUBDICTVAR", "SubVarContent")
        copy = doc.entitydb.duplicate_entity(source)

        sub_dict_copy = copy["SUBDICT"]
        assert sub_dict is not sub_dict_copy
        assert sub_dict["SUBDICTVAR"] is not sub_dict_copy["SUBDICTVAR"]
        assert factory.is_bound(sub_dict_copy, doc) is True
        assert factory.is_bound(sub_dict_copy["SUBDICTVAR"], doc) is True
コード例 #3
0
def test_add_virtual_insert_with_attribs_to_layout(doc):
    doc.blocks.new('TestAddVirtualInsert')
    msp = doc.modelspace()
    insert = Insert.new(dxfattribs={'name': 'TestAddVirtualInsert'})
    insert.add_attrib('TAG', 'TEXT', (0, 0))
    msp.add_entity(insert)

    assert factory.is_bound(insert, doc) is True
    assert factory.is_bound(insert.seqend, doc) is True, \
        'SEQEND must be bound to document'

    assert insert.attribs_follow is True
    assert factory.is_bound(insert.attribs[0], doc) is True, \
        'ATTRIB must be bound to document'
コード例 #4
0
def test_add_virtual_insert_with_attribs_to_layout(doc):
    doc.blocks.new("TestAddVirtualInsert")
    msp = doc.modelspace()
    insert = Insert.new(dxfattribs={"name": "TestAddVirtualInsert"})
    insert.add_attrib("TAG", "TEXT", (0, 0))
    msp.add_entity(insert)

    assert factory.is_bound(insert, doc) is True
    assert (factory.is_bound(insert.seqend, doc) is
            True), "SEQEND must be bound to document"

    assert insert.attribs_follow is True
    assert (factory.is_bound(insert.attribs[0], doc) is
            True), "ATTRIB must be bound to document"
コード例 #5
0
 def test_copied_data_is_bound(self, source: Dictionary, key: str):
     doc = source.doc
     copy = doc.entitydb.duplicate_entity(source)
     source_handle = source[key].dxf.handle
     copied_handle = copy[key].dxf.handle
     assert copied_handle is not None
     assert source_handle != copied_handle
     assert copied_handle in doc.entitydb
     assert copy[key] in doc.objects
     assert factory.is_bound(copy[key], doc)
コード例 #6
0
 def test_fully_manual_dictionary_copy(self, source: Dictionary):
     doc = source.doc
     # manual copy procedure:
     copy = source.copy()
     factory.bind(copy, doc)
     doc.objects.add_object(copy)
     # this is all done automatically if you use:
     # doc.entitydb.duplicate_entity(source)
     assert copy in doc.objects
     assert factory.is_bound(copy, doc)
コード例 #7
0
def audit(entity: 'DXFEntity', doc: 'Drawing') -> Auditor:
    """ Setup an :class:`Auditor` object, run the audit process for `entity`
    and return result as :class:`Auditor` object.

    Args:
        entity: DXF entity to validate
        doc: bounded DXF document of `entity`

    """
    if not entity.is_alive:
        raise TypeError('Entity is destroyed.')

    # Validation of unbound entities is possible, but it is not useful
    # to validate entities against a different DXF document:
    if entity.dxf.handle is not None and not factory.is_bound(entity, doc):
        raise ValueError('Entity is bound to different DXF document.')

    auditor = Auditor(doc)
    entity.audit(auditor)
    return auditor
コード例 #8
0
ファイル: test_114_factory.py プロジェクト: yening2020/ezdxf
def test_is_bound_true(doc):
    e = factory.new('POINT')
    factory.bind(e, doc)
    assert factory.is_bound(e, doc) is True
    assert e.is_bound is True
コード例 #9
0
ファイル: test_114_factory.py プロジェクト: yening2020/ezdxf
def test_if_destroyed_entity_is_bound(doc):
    e = factory.new('POINT')
    factory.bind(e, doc)
    e.destroy()
    assert factory.is_bound(e, doc) is False
    assert e.is_bound is False
コード例 #10
0
ファイル: test_114_factory.py プロジェクト: yening2020/ezdxf
def test_is_bound_false(doc):
    e = factory.new('POINT')
    assert factory.is_bound(e, doc) is False
    assert e.is_bound is False
コード例 #11
0
 def test_copied_dictionary_is_bound(self, source: Dictionary):
     doc = source.doc
     copy = doc.entitydb.duplicate_entity(source)
     assert copy in doc.objects
     assert factory.is_bound(copy, doc)
コード例 #12
0
 def test_copied_objects_are_not_bound_to_document(self,
                                                   source: Dictionary):
     copy = source.copy()
     assert factory.is_bound(copy["DICTVAR"], source.doc) is False
     assert factory.is_bound(copy["XRECORD"], source.doc) is False