mirror of
https://github.com/wassname/sloth.git
synced 2026-06-27 18:25:49 +08:00
67 lines
1.6 KiB
Python
67 lines
1.6 KiB
Python
import pytest
|
|
from sloth.items import Factory
|
|
|
|
|
|
class MockupRectItem:
|
|
pass
|
|
|
|
|
|
class MockupPointItem:
|
|
pass
|
|
|
|
|
|
class MockupPolygonItem:
|
|
pass
|
|
|
|
|
|
def _create_factory():
|
|
itemfactory = Factory({'point': MockupPointItem,
|
|
'polygon': MockupPolygonItem})
|
|
itemfactory.register('rect', MockupRectItem)
|
|
|
|
return itemfactory
|
|
|
|
|
|
def test_register():
|
|
itemfactory = _create_factory()
|
|
|
|
item = itemfactory.create('rect')
|
|
assert isinstance(item, MockupRectItem)
|
|
item = itemfactory.create('point')
|
|
assert isinstance(item, MockupPointItem)
|
|
item = itemfactory.create('polygon')
|
|
assert isinstance(item, MockupPolygonItem)
|
|
item = itemfactory.create('polygon2')
|
|
assert item is None
|
|
|
|
|
|
def test_register_fail():
|
|
itemfactory = _create_factory()
|
|
with pytest.raises(Exception):
|
|
itemfactory.register('rect', MockupRectItem)
|
|
|
|
|
|
def test_register_replace():
|
|
itemfactory = _create_factory()
|
|
|
|
itemfactory.register('rect', MockupPolygonItem, replace=True)
|
|
item = itemfactory.create('rect')
|
|
assert isinstance(item, MockupPolygonItem)
|
|
|
|
|
|
def test_clear():
|
|
itemfactory = _create_factory()
|
|
|
|
item = itemfactory.create('rect')
|
|
assert isinstance(item, MockupRectItem)
|
|
itemfactory.clear('rect')
|
|
item = itemfactory.create('rect')
|
|
assert item is None
|
|
|
|
item = itemfactory.create('point')
|
|
assert isinstance(item, MockupPointItem)
|
|
item = itemfactory.create('polygon')
|
|
assert isinstance(item, MockupPolygonItem)
|
|
itemfactory.clear()
|
|
assert itemfactory.create('point') is None
|
|
assert itemfactory.create('polygon') is None |