Migrate container tests

This commit is contained in:
Roman Mogylatov 2021-10-14 16:27:15 -04:00
parent e3a6ee973c
commit fc61b93603
2 changed files with 48 additions and 93 deletions

View File

@ -1,93 +1,53 @@
import unittest """Container traversing tests."""
from dependency_injector import containers, providers from dependency_injector import containers, providers
class TraverseProviderTests(unittest.TestCase): class Container(containers.DeclarativeContainer):
obj_factory = providers.DelegatedFactory(
def test_nested_providers(self): dict,
class Container(containers.DeclarativeContainer): foo=providers.Resource(
obj_factory = providers.DelegatedFactory( dict,
dict, foo="bar"
foo=providers.Resource( ),
dict, bar=providers.Resource(
foo="bar" dict,
), foo="bar"
bar=providers.Resource( )
dict, )
foo="bar"
)
)
container = Container()
all_providers = list(container.traverse())
self.assertIn(container.obj_factory, all_providers)
self.assertIn(container.obj_factory.kwargs["foo"], all_providers)
self.assertIn(container.obj_factory.kwargs["bar"], all_providers)
self.assertEqual(len(all_providers), 3)
def test_nested_providers_with_filtering(self):
class Container(containers.DeclarativeContainer):
obj_factory = providers.DelegatedFactory(
dict,
foo=providers.Resource(
dict,
foo="bar"
),
bar=providers.Resource(
dict,
foo="bar"
)
)
container = Container()
all_providers = list(container.traverse(types=[providers.Resource]))
self.assertIn(container.obj_factory.kwargs["foo"], all_providers)
self.assertIn(container.obj_factory.kwargs["bar"], all_providers)
self.assertEqual(len(all_providers), 2)
class TraverseProviderDeclarativeTests(unittest.TestCase): def test_nested_providers():
container = Container()
all_providers = list(container.traverse())
def test_nested_providers(self): assert container.obj_factory in all_providers
class Container(containers.DeclarativeContainer): assert container.obj_factory.kwargs["foo"] in all_providers
obj_factory = providers.DelegatedFactory( assert container.obj_factory.kwargs["bar"] in all_providers
dict, assert len(all_providers) == 3
foo=providers.Resource(
dict,
foo="bar"
),
bar=providers.Resource(
dict,
foo="bar"
)
)
all_providers = list(Container.traverse())
self.assertIn(Container.obj_factory, all_providers) def test_nested_providers_with_filtering():
self.assertIn(Container.obj_factory.kwargs["foo"], all_providers) container = Container()
self.assertIn(Container.obj_factory.kwargs["bar"], all_providers) all_providers = list(container.traverse(types=[providers.Resource]))
self.assertEqual(len(all_providers), 3)
def test_nested_providers_with_filtering(self): assert container.obj_factory.kwargs["foo"] in all_providers
class Container(containers.DeclarativeContainer): assert container.obj_factory.kwargs["bar"] in all_providers
obj_factory = providers.DelegatedFactory( assert len(all_providers) == 2
dict,
foo=providers.Resource(
dict,
foo="bar"
),
bar=providers.Resource(
dict,
foo="bar"
)
)
all_providers = list(Container.traverse(types=[providers.Resource]))
self.assertIn(Container.obj_factory.kwargs["foo"], all_providers) def test_container_cls_nested_providers():
self.assertIn(Container.obj_factory.kwargs["bar"], all_providers) all_providers = list(Container.traverse())
self.assertEqual(len(all_providers), 2)
assert Container.obj_factory in all_providers
assert Container.obj_factory.kwargs["foo"] in all_providers
assert Container.obj_factory.kwargs["bar"] in all_providers
assert len(all_providers) == 3
def test_container_cls_nested_providers_with_filtering():
all_providers = list(Container.traverse(types=[providers.Resource]))
assert Container.obj_factory.kwargs["foo"] in all_providers
assert Container.obj_factory.kwargs["bar"] in all_providers
assert len(all_providers) == 2

View File

@ -1,18 +1,13 @@
import unittest """Container typing in runtime tests."""
from dependency_injector import containers from dependency_injector import containers
class SomeClass: def test_types_declarative():
... container: containers.Container = containers.DeclarativeContainer()
assert isinstance(container, containers.Container)
class TypesTest(unittest.TestCase): def test_types_dynamic():
container: containers.Container = containers.DynamicContainer()
def test_declarative(self): assert isinstance(container, containers.Container)
container: containers.Container = containers.DeclarativeContainer()
self.assertIsInstance(container, containers.Container)
def test_dynamic(self):
container: containers.Container = containers.DynamicContainer()
self.assertIsInstance(container, containers.Container)