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
class TraverseProviderTests(unittest.TestCase):
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"
)
)
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 Container(containers.DeclarativeContainer):
obj_factory = providers.DelegatedFactory(
dict,
foo=providers.Resource(
dict,
foo="bar"
),
bar=providers.Resource(
dict,
foo="bar"
)
)
class TraverseProviderDeclarativeTests(unittest.TestCase):
def test_nested_providers():
container = Container()
all_providers = list(container.traverse())
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"
)
)
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
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():
container = Container()
all_providers = list(container.traverse(types=[providers.Resource]))
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"
)
)
assert container.obj_factory.kwargs["foo"] in all_providers
assert container.obj_factory.kwargs["bar"] in all_providers
assert len(all_providers) == 2
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)
def test_container_cls_nested_providers():
all_providers = list(Container.traverse())
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
class SomeClass:
...
def test_types_declarative():
container: containers.Container = containers.DeclarativeContainer()
assert isinstance(container, containers.Container)
class TypesTest(unittest.TestCase):
def test_declarative(self):
container: containers.Container = containers.DeclarativeContainer()
self.assertIsInstance(container, containers.Container)
def test_dynamic(self):
container: containers.Container = containers.DynamicContainer()
self.assertIsInstance(container, containers.Container)
def test_types_dynamic():
container: containers.Container = containers.DynamicContainer()
assert isinstance(container, containers.Container)