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,12 +1,9 @@
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):
def test_nested_providers(self):
class Container(containers.DeclarativeContainer):
obj_factory = providers.DelegatedFactory( obj_factory = providers.DelegatedFactory(
dict, dict,
foo=providers.Resource( foo=providers.Resource(
@ -19,75 +16,38 @@ class TraverseProviderTests(unittest.TestCase):
) )
) )
def test_nested_providers():
container = Container() container = Container()
all_providers = list(container.traverse()) all_providers = list(container.traverse())
self.assertIn(container.obj_factory, all_providers) assert container.obj_factory in all_providers
self.assertIn(container.obj_factory.kwargs["foo"], all_providers) assert container.obj_factory.kwargs["foo"] in all_providers
self.assertIn(container.obj_factory.kwargs["bar"], all_providers) assert container.obj_factory.kwargs["bar"] in all_providers
self.assertEqual(len(all_providers), 3) assert 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"
)
)
def test_nested_providers_with_filtering():
container = Container() container = Container()
all_providers = list(container.traverse(types=[providers.Resource])) all_providers = list(container.traverse(types=[providers.Resource]))
self.assertIn(container.obj_factory.kwargs["foo"], all_providers) assert container.obj_factory.kwargs["foo"] in all_providers
self.assertIn(container.obj_factory.kwargs["bar"], all_providers) assert container.obj_factory.kwargs["bar"] in all_providers
self.assertEqual(len(all_providers), 2) assert len(all_providers) == 2
class TraverseProviderDeclarativeTests(unittest.TestCase): def test_container_cls_nested_providers():
def test_nested_providers(self):
class Container(containers.DeclarativeContainer):
obj_factory = providers.DelegatedFactory(
dict,
foo=providers.Resource(
dict,
foo="bar"
),
bar=providers.Resource(
dict,
foo="bar"
)
)
all_providers = list(Container.traverse()) all_providers = list(Container.traverse())
self.assertIn(Container.obj_factory, all_providers) assert Container.obj_factory in all_providers
self.assertIn(Container.obj_factory.kwargs["foo"], all_providers) assert Container.obj_factory.kwargs["foo"] in all_providers
self.assertIn(Container.obj_factory.kwargs["bar"], all_providers) assert Container.obj_factory.kwargs["bar"] in all_providers
self.assertEqual(len(all_providers), 3) assert 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"
)
)
def test_container_cls_nested_providers_with_filtering():
all_providers = list(Container.traverse(types=[providers.Resource])) all_providers = list(Container.traverse(types=[providers.Resource]))
self.assertIn(Container.obj_factory.kwargs["foo"], all_providers) assert Container.obj_factory.kwargs["foo"] in all_providers
self.assertIn(Container.obj_factory.kwargs["bar"], all_providers) assert Container.obj_factory.kwargs["bar"] in all_providers
self.assertEqual(len(all_providers), 2) 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():
...
class TypesTest(unittest.TestCase):
def test_declarative(self):
container: containers.Container = containers.DeclarativeContainer() container: containers.Container = containers.DeclarativeContainer()
self.assertIsInstance(container, containers.Container) assert isinstance(container, containers.Container)
def test_dynamic(self):
def test_types_dynamic():
container: containers.Container = containers.DynamicContainer() container: containers.Container = containers.DynamicContainer()
self.assertIsInstance(container, containers.Container) assert isinstance(container, containers.Container)