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
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
def test_default_set(): """Setting default consistently should succeed.""" slot = Slot(dtype=str, default='fallback') plug = Plug(slot) plug.default = 'default'
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
def test_obj_set(): """Setting obj consistently should succeed.""" slot = Slot(dtype=str, default='fallback') plug = Plug(slot) plug.obj = 'obj'
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)
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)
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
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'
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'
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'
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'
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)
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)
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)
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
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
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
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)
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'
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)
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)