mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-07-04 20:33:13 +03:00
Migrate container tests
This commit is contained in:
parent
e3a6ee973c
commit
fc61b93603
|
@ -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
|
||||||
|
|
|
@ -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)
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user