def test_if_get_or_default_returns_default_when_no_object_for_given_key( self): locator = ObjectLocator() ret1 = locator.get_or_default(TEST_CLASS_1_NAME, 'default') assert isinstance(ret1, str) assert ret1 == 'default'
def test_if_locator_returns_keys_for_registered_objects(self): locator = ObjectLocator() locator.register('key', 'value') keys = locator.get_keys() assert 'key' in keys assert len(keys) == 1
def test_if_is_registered_returns_true_for_registered_providers(self): locator = ObjectLocator() test_object = TestClass1() locator.register(TEST_CLASS_1_NAME, test_object) assert locator.is_key_registered(TEST_CLASS_1_NAME) assert not locator.is_key_registered(test_object)
def test_if_registering_duplicate_entry_raises_exception(self): locator = ObjectLocator() test_object = TestClass1() locator.register(TEST_CLASS_1_NAME, test_object) with pytest.raises(KeyError): locator.register(TEST_CLASS_1_NAME, test_object)
def __init__(self, name='', locator=None): if locator is not None: if not isinstance(locator, LocatorBase): raise TypeError('locator must be instance of class derived from %s' % LocatorBase.__class__.__name__) self._locator = locator else: self._locator = ObjectLocator() self._name = name
def test_if_registered_object_is_resolved_by_key(self): localtor = ObjectLocator() test_object = TestClass1() localtor.register(TEST_CLASS_1_NAME, test_object) instance = localtor.locate(TEST_CLASS_1_NAME) assert instance is not None assert test_object is instance
def test_if_class_can_be_used_as_key(self): locator = ObjectLocator() test_object = TestClass1() locator.register(TestClass1, test_object) instance = locator.locate(TestClass1) assert instance is not None assert isinstance(instance, TestClass1)
def test_registering_function_as_object(self): locator = ObjectLocator() container_class = self.get_container() container = container_class() container._locator = locator container.register_object(TEST_FUNC_1_NAME, TestFunc1) ret1 = container.get(TEST_FUNC_1_NAME) assert ret1 is not None assert isinstance(ret1, type(TestFunc1))
def test_if_get_or_default_returns_registered_object(self): locator = ObjectLocator() test_object = TestClass1() locator.register(TEST_CLASS_1_NAME, test_object) ret1 = locator.get_or_default(TEST_CLASS_1_NAME, 'default') assert isinstance(ret1, TestClass1) assert ret1 is test_object
def test_registering_class(self): locator = ObjectLocator() container_class = self.get_container() container = container_class(locator=locator) container.register_callable(TEST_CLASS_1_NAME, TestClass1) ret1 = locator.is_key_registered(TEST_CLASS_1_NAME) assert ret1 is True ret2 = container.resolve(TEST_CLASS_1_NAME) ret3 = container.resolve(TEST_CLASS_1_NAME) assert isinstance(ret2, TestClass1) assert ret2 is not ret3
def __init__(self, name='', locator=None): """ Raises TypeError when locator object is not derived from LocatorBase class. :param name: Name for a container. :param locator: Locator instance that will be used for storing objects in the container. """ if locator is not None: if not isinstance(locator, LocatorBase): raise TypeError( 'locator must be instance of class derived from %s' % LocatorBase.__class__.__name__) self._locator = locator else: self._locator = ObjectLocator() self._name = name
def test_registering_singleton(self): locator = ObjectLocator() container_class = self.get_container() container = container_class() container._locator = locator container.register_callable(TEST_CLASS_1_NAME, TestClass1, lifetime=InstanceLifetime.SingletonLazy) ret1 = locator.is_key_registered(TEST_CLASS_1_NAME) assert ret1 is True ret2 = container.get(TEST_CLASS_1_NAME) ret3 = container.get(TEST_CLASS_1_NAME) assert isinstance(ret2, TestClass1) assert id(ret2) == id(ret3)
def test_if_resolving_unregistered_object_raises_exception(self): locator = ObjectLocator() with pytest.raises(KeyError): locator.locate(TEST_CLASS_1_NAME)