示例#1
0
 def test_delete_hierachy_last():
     """Deleting such that all obj, default and fallback are None should fail."""
     slot = Slot(dtype=str)
     plug = Plug(slot, default='default', obj='obj')
     del plug.obj
     with pytest.raises(TypeError):
         del plug.default
示例#2
0
 def test_init_with_slot_default():
     """Instatiating a Plug with a slot's default value should succeed."""
     slot = Slot(dtype=int, default=10)
     Plug(slot)
示例#3
0
 class SlotHolder:
     """Holds a single Slot"""
     my_slot = Slot(str)
示例#4
0
 class MyPlugboard(Plugboard):
     """Custom Plugboard"""
     my_slot = Slot(dtype=int, default=15)
示例#5
0
 def test_slot_set_no_default():
     """Assigning a new slot without any other but the slot default value set should fail."""
     slot = Slot(dtype=object, default='fallback')
     plug = Plug(slot)
     with pytest.raises(TypeError):
         plug.slot = slot(dtype=str)
示例#6
0
 def test_slot_set_consistent():
     """Assigning a new slot with the correct dtype should succeed."""
     slot = Slot(dtype=object)
     plug = Plug(slot, obj='default')
     plug.slot = Slot(dtype=str)
示例#7
0
 def test_not_optional():
     """If neither default, nor slot default are set, object should not be optional."""
     slot = Slot(dtype=str)
     plug = Plug(slot, obj='obj')
     assert not plug.optional
示例#8
0
 def test_default_set_inconsistent():
     """Setting default inconsistently should fail."""
     slot = Slot(dtype=str, default='fallback')
     plug = Plug(slot)
     with pytest.raises(TypeError):
         plug.default = 15
示例#9
0
 def test_init_unknown_args():
     """When unknown arguments are passed, Slot should raise TypeError when instatiating"""
     with pytest.raises(TypeError):
         Slot(monkey='banana')
示例#10
0
 def test_obj_hierachy_obj():
     """Accessing obj with slot default, plug default and obj set should return obj."""
     slot = Slot(dtype=str, default='fallback')
     plug = Plug(slot, obj='obj', default='default')
     assert plug.obj == 'obj'
示例#11
0
 def test_init_inconsistent_default():
     """Instatiating a Plug with obj not set as slot's dtype should fail."""
     slot = Slot(dtype=str)
     with pytest.raises(TypeError):
         Plug(slot, default=15)
示例#12
0
 def test_init_consistent_default():
     """Instatiating a Plug with default set as the correct slot's dtype should succeed."""
     slot = Slot(dtype=int)
     Plug(slot, default=15)
示例#13
0
 def test_init_consistent_obj():
     """Instatiating a Plug with obj set as the correct slot's dtype should succeed."""
     slot = Slot(dtype=int)
     Plug(slot, obj=15)
示例#14
0
 def test_init_no_slot_default():
     """Instatiating a Plug without a slot's default value should fail."""
     slot = Slot(dtype=int)
     with pytest.raises(TypeError):
         Plug(slot)
示例#15
0
 def test_init_inconsistent_args():
     """If arguments are inconsistent, Slot should raise TypeError when instatiating"""
     with pytest.raises(TypeError):
         Slot(dtype=str, default=5)
示例#16
0
 def test_obj_del():
     """Deleting obj with slot default should succeed."""
     slot = Slot(dtype=str, default='fallback')
     plug = Plug(slot)
     plug.obj = 'obj'
     del plug.obj
示例#17
0
 def test_default_set():
     """Setting default consistently should succeed."""
     slot = Slot(dtype=str, default='fallback')
     plug = Plug(slot)
     plug.default = 'default'
示例#18
0
 def test_default_hierachy_obj():
     """Accessing default with slot default, default and obj set should return default."""
     slot = Slot(dtype=str, default='fallback')
     plug = Plug(slot, default='default')
     assert plug.default == 'default'
示例#19
0
 def test_default_del():
     """Deleting default with slot default should succeed."""
     slot = Slot(dtype=str, default='fallback')
     plug = Plug(slot)
     plug.default = 'default'
     del plug.default
示例#20
0
 def test_fallback_hierachy_default():
     """Accessing fallback with slot default and plug default set should return slot default."""
     slot = Slot(dtype=str, default='fallback')
     plug = Plug(slot, default='default')
     assert plug.fallback == 'fallback'
示例#21
0
 def test_optional():
     """If default is set, object should be optional."""
     slot = Slot(dtype=str)
     plug = Plug(slot, default='default', obj='obj')
     assert plug.optional
示例#22
0
 def test_fallback_hierachy_fallback():
     """Accessing fallback with only slot default set should return slot default."""
     slot = Slot(dtype=str, default='fallback')
     plug = Plug(slot)
     assert plug.fallback == 'fallback'
示例#23
0
 def test_slot_set_inconsistent():
     """Assigning a new slot without the correct dtype should fail."""
     slot = Slot(dtype=object)
     plug = Plug(slot, obj='default')
     with pytest.raises(TypeError):
         plug.slot = slot(dtype=int)
示例#24
0
 def test_hierachy_none():
     """Accessing any of default and fallback with only obj set should return None."""
     slot = Slot(dtype=str)
     plug = Plug(slot, obj='obj')
     assert plug.default is None
     assert plug.fallback is None
示例#25
0
 class SlotHolder:
     """Holds a single Slot"""
     my_slot = Slot(default=42)
示例#26
0
 def test_delete_hierachy():
     """Deleting obj with default set should return default."""
     slot = Slot(dtype=str)
     plug = Plug(slot, default='default', obj='obj')
     del plug.obj
     assert plug.obj == 'default'
示例#27
0
 class SlotHolder:
     """Holds a single Slot"""
     my_slot = Slot(dtype=int)
示例#28
0
 def test_obj_set():
     """Setting obj consistently should succeed."""
     slot = Slot(dtype=str, default='fallback')
     plug = Plug(slot)
     plug.obj = 'obj'
示例#29
0
 def test_init():
     """Slot should successfully instatiate in any case"""
     Slot()
示例#30
0
 class SlotHolder:
     """Holds a single Slot"""
     my_slot = Slot(dtype=int, default=15)