Пример #1
0
    def test_async_mode(self):
        instance = object()

        async def create_instance():
            return instance

        provider = providers.DelegatedSingleton(create_instance)

        instance1 = self._run(provider())
        instance2 = self._run(provider())

        self.assertIs(instance1, instance2)
        self.assertIs(instance, instance)
Пример #2
0
async def test_concurrent_init():
    async def create_instance():
        return object()

    provider = providers.DelegatedSingleton(create_instance)

    future_instance1 = provider()
    future_instance2 = provider()

    instance1, instance2 = await asyncio.gather(future_instance1,
                                                future_instance2)

    assert instance1 is instance2
Пример #3
0
async def test_async_mode():
    instance = object()

    async def create_instance():
        return instance

    provider = providers.DelegatedSingleton(create_instance)

    instance1 = await provider()
    instance2 = await provider()

    assert instance1 is instance2
    assert instance1 is instance
    assert instance2 is instance
Пример #4
0
# Test 4: to check the .args, .kwargs, .attributes attributes
provider4 = providers.Singleton(Animal)
args4: Tuple[Any] = provider4.args
kwargs4: Dict[str, Any] = provider4.kwargs
attributes4: Dict[str, Any] = provider4.attributes

# Test 5: to check the provided instance interface
provider5 = providers.Singleton(Animal)
provided5: providers.ProvidedInstance = provider5.provided
attr_getter5: providers.AttributeGetter = provider5.provided.attr
item_getter5: providers.ItemGetter = provider5.provided['item']
method_caller5: providers.MethodCaller = provider5.provided.method.call(
    123, arg=324)

# Test 6: to check the DelegatedSingleton
provider6 = providers.DelegatedSingleton(Cat)
animal6: Animal = provider6(1, 2, 3, b='1', c=2, e=0.0)

# Test 7: to check the ThreadSafeSingleton
provider7: providers.BaseSingleton[Animal] = providers.ThreadSafeSingleton(Cat)
animal7: Animal = provider7()

# Test 8: to check the DelegatedThreadSafeSingleton
provider8 = providers.DelegatedThreadSafeSingleton(Cat)
animal8: Animal = provider8(1, 2, 3, b='1', c=2, e=0.0)

# Test 9: to check the ThreadLocalSingleton
provider9 = providers.ThreadLocalSingleton(Cat)
animal9: Animal = provider9(1, 2, 3, b='1', c=2, e=0.0)

# Test 10: to check the DelegatedThreadLocalSingleton
Пример #5
0
    def test_call_overridden_by_delegated_singleton(self):
        provider = providers.AbstractSingleton(object)
        provider.override(providers.DelegatedSingleton(Example))

        self.assertIsInstance(provider(), Example)
Пример #6
0
 def test_is_delegated_provider(self):
     """Test is_delegated_provider."""
     provider = providers.DelegatedSingleton(object)
     self.assertIs(provider.provide_injection(), provider)
Пример #7
0
 def test_is_provider(self):
     """Test is_provider."""
     self.assertTrue(utils.is_provider(
         providers.DelegatedSingleton(object)))
Пример #8
0
 def test_inheritance(self):
     """Test inheritance."""
     self.assertIsInstance(providers.DelegatedSingleton(object),
                           providers.Singleton)