mirror of
https://github.com/wassname/sloth.git
synced 2026-06-27 19:48:56 +08:00
add more container tests
This commit is contained in:
@@ -1,11 +0,0 @@
|
||||
from sloth.annotations.container import *
|
||||
|
||||
class MockupContainer:
|
||||
pass
|
||||
|
||||
def test_import_callable():
|
||||
containers = (('*', 'container_factory_test.MockupContainer'),)
|
||||
factory = AnnotationContainerFactory(containers)
|
||||
item = factory.create('test')
|
||||
assert isinstance(item, MockupContainer)
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
from sloth.annotations.container import *
|
||||
|
||||
class MockupContainer:
|
||||
pass
|
||||
|
||||
def someFileAnnotations(i):
|
||||
annotations = []
|
||||
annotations.append({'type': 'rect',
|
||||
'x': 10 * i,
|
||||
'y': '20',
|
||||
'w': '40',
|
||||
'h': '60'})
|
||||
annotations.append({'type': 'rect',
|
||||
'x': '80',
|
||||
'y': 20 * i,
|
||||
'w': '40',
|
||||
'h': '60'})
|
||||
for k in range(i):
|
||||
annotations.append({'type': 'point',
|
||||
'x': 30 * k,
|
||||
'y': 30 * k})
|
||||
return annotations
|
||||
|
||||
def someAnnotations():
|
||||
annotations = []
|
||||
for i in range(5):
|
||||
file = {
|
||||
'filename': 'file%d.png' % i,
|
||||
'type': 'image',
|
||||
'annotations': someFileAnnotations(i)
|
||||
}
|
||||
annotations.append(file)
|
||||
return annotations
|
||||
|
||||
def common_container_test(filename, container):
|
||||
original_anns = someAnnotations()
|
||||
|
||||
container.setAnnotations(original_anns)
|
||||
assert len(container.annotations()) == len(original_anns)
|
||||
|
||||
container.save(filename)
|
||||
assert container.filename() == filename
|
||||
assert os.path.exists(filename)
|
||||
|
||||
container.clear()
|
||||
assert container.filename() is None
|
||||
assert len(container.annotations()) == 0
|
||||
|
||||
container.load(filename)
|
||||
assert container.filename() == filename
|
||||
assert len(container.annotations()) == len(original_anns)
|
||||
|
||||
def test_import_callable():
|
||||
containers = (('*', 'container_test.MockupContainer'),)
|
||||
factory = AnnotationContainerFactory(containers)
|
||||
item = factory.create('test')
|
||||
assert isinstance(item, MockupContainer)
|
||||
|
||||
def test_PickleContainer(tmpdir):
|
||||
filename = os.path.join(str(tmpdir), "test_PickleContainer.pickle")
|
||||
container = PickleContainer()
|
||||
common_container_test(filename, container)
|
||||
|
||||
def test_JsonContainer(tmpdir):
|
||||
filename = os.path.join(str(tmpdir), "test_JsonContainer.json")
|
||||
container = JsonContainer()
|
||||
common_container_test(filename, container)
|
||||
|
||||
def test_YamlContainer(tmpdir):
|
||||
filename = os.path.join(str(tmpdir), "test_YamlContainer.yaml")
|
||||
container = YamlContainer()
|
||||
common_container_test(filename, container)
|
||||
Reference in New Issue
Block a user