예제 #1
0
def test_reset_entity_handle():
    db = EntityDB()
    entity = DXFEntity()
    db.add(entity)
    assert db.reset_handle(entity, "FEFE") is True
    assert entity.dxf.handle == "FEFE"
    assert "FEFE" in db
예제 #2
0
def test_delete_entity():
    db = EntityDB()
    entity = DXFEntity()
    db.add(entity)
    assert len(db) == 1
    db.delete_entity(entity)
    assert len(db) == 0
예제 #3
0
def test_delete_entity():
    db = EntityDB()
    entity = DXFEntity.from_text("0\nTEST\n5\nFFFF\n")
    db.add(entity)
    assert len(db) == 1
    db.delete_entity(entity)
    assert len(db) == 0
예제 #4
0
def test_discard_contained_entity():
    db = EntityDB()
    e = DXFEntity()
    db.add(e)
    assert len(db) == 1
    db.discard(e)
    assert len(db) == 0
    assert e.dxf.handle is None
예제 #5
0
def test_restore_integrity_remove_invalid_None():
    db = EntityDB()
    e = DXFEntity.from_text("0\nTEST\n5\nABBA\n")
    db.add(e)
    assert len(db) == 1

    # set invalid handle
    e.dxf.handle = None
    db.audit(auditor)
    assert len(db) == 0
예제 #6
0
def test_restore_integrity_purge():
    db = EntityDB()
    e = DXFEntity.from_text("0\nTEST\n5\nABBA\n")
    db.add(e)
    assert len(db) == 1
    db.audit(auditor)
    assert len(db) == 1
    e.destroy()
    db.audit(auditor)
    assert len(db) == 0
예제 #7
0
def test_restore_integrity_remove_invalid_None():
    db = EntityDB()
    e = DXFEntity.new()
    db.add(e)
    assert len(db) == 1

    # set invalid handle
    e.dxf.handle = None
    db.audit(auditor)
    assert len(db) == 0
예제 #8
0
def test_add_entity_multiple_times():
    db = EntityDB()
    e = DXFEntity()
    db.add(e)
    handle = e.dxf.handle
    assert len(db) == 1

    db.add(e)
    assert e.dxf.handle == handle, 'handle must not change'
    assert len(db) == 1, 'do not store same entity multiple times'
예제 #9
0
def test_restore_integrity_purge():
    db = EntityDB()
    e = DXFEntity.new()
    db.add(e)
    assert len(db) == 1
    db.audit(auditor)
    assert len(db) == 1
    e.destroy()
    db.audit(auditor)
    assert len(db) == 0
예제 #10
0
def test_restore_integrity_remove_invalid_handle():
    db = EntityDB()
    e = DXFEntity.new(handle='ABBA')
    db.add(e)
    assert len(db) == 1

    # set invalid handle
    e.dxf.handle = 'XFFF'
    db.audit(auditor)
    assert len(db) == 0
예제 #11
0
def test_delete_dead_entity_entity():
    db = EntityDB()
    entity = DXFEntity.new(handle='FEFE')
    db.add(entity)
    assert len(db) == 1
    entity.destroy()
    # delete_entity() should not raise an error if entity is not alive!
    db.delete_entity(entity)
    # but entity.destroy() does not remove entity from EntityDB!
    assert 'FEFE' in db
    assert len(db) == 1
예제 #12
0
def test_delete_dead_entity_entity():
    db = EntityDB()
    entity = DXFEntity.from_text("0\nTEST\n5\nFFFF\n")
    db.add(entity)
    assert len(db) == 1
    entity.destroy()
    # delete_entity() should not raise an error if entity is not alive!
    db.delete_entity(entity)
    # but entity.destroy() does not remove entity from EntityDB!
    assert 'FFFF' in db
    assert len(db) == 1
예제 #13
0
def test_trashcan_context_manager():
    db = EntityDB()
    entities = [DXFEntity() for _ in range(5)]
    for e in entities:
        db.add(e)
    handles = list(db.keys())
    with db.trashcan() as trashcan:
        trashcan.add(handles[0])
        trashcan.add(handles[1])

    assert len(db) == 3
    assert entities[0].is_alive is False
    assert entities[1].is_alive is False
예제 #14
0
def test_can_not_reset_entity_handle():
    """Can not reset the DXF handle of an entity to a handle, which is already
    used by another entity.
    """
    db = EntityDB()
    entity1 = DXFEntity()
    entity2 = DXFEntity()
    db.add(entity1)
    db.add(entity2)
    handle = entity1.dxf.handle

    assert db.reset_handle(entity1, entity2.dxf.handle) is False
    assert entity1.dxf.handle == handle
예제 #15
0
def test_restore_integrity_recover():
    db = EntityDB()
    e = DXFEntity.new(handle='ABBA')
    db.add(e)
    assert len(db) == 1

    # modify handle
    e.dxf.handle = 'FEFE'
    assert 'ABBA' in db
    assert 'FEFE' not in db

    db.audit(auditor)
    assert len(db) == 1
    assert 'FEFE' in db
    assert 'ABBA' not in db
예제 #16
0
def test_restore_integrity_recover():
    db = EntityDB()
    e = DXFEntity.from_text("0\nTEST\n5\nABBA\n")
    db.add(e)
    assert len(db) == 1

    # modify handle
    e.dxf.handle = 'FEFE'
    assert 'ABBA' in db
    assert 'FEFE' not in db

    db.audit(auditor)
    assert len(db) == 1
    assert 'FEFE' in db
    assert 'ABBA' not in db
예제 #17
0
def test_restore_integrity_recover():
    db = EntityDB()
    e = DXFEntity.new(handle="ABBA")
    db.add(e)
    assert len(db) == 1

    # modify handle
    e.dxf.handle = "FEFE"
    assert "ABBA" in db
    assert "FEFE" not in db

    db.audit(auditor)
    assert len(db) == 1
    assert "FEFE" in db
    assert "ABBA" not in db
예제 #18
0
def test_add_tags():
    db = EntityDB()
    db.add(ENTITY)
    assert 'FFFF' in db
예제 #19
0
def test_query_method_exist():
    db = EntityDB()
    db.add(DXFEntity())
    db.add(DXFEntity())
    assert len(db.query()) == 2