Migrate wiring config tests

This commit is contained in:
Roman Mogylatov 2021-10-13 18:55:04 -04:00
parent 150432032a
commit 14449c4538
2 changed files with 92 additions and 67 deletions

View File

@ -0,0 +1,92 @@
"""Tests for specifying wiring config in the container."""
from dependency_injector import containers
from dependency_injector.wiring import Provide
from pytest import fixture, mark
from wiringsamples import module
from wiringsamples.service import Service
from wiringsamples.container import Container
@fixture(autouse=True)
def container(wiring_config: containers.WiringConfiguration):
original_wiring_config = Container.wiring_config
Container.wiring_config = wiring_config
container = Container()
yield container
container.unwire()
Container.wiring_config = original_wiring_config
@mark.parametrize(
"wiring_config",
[
containers.WiringConfiguration(
modules=["wiringsamples.module"],
packages=["wiringsamples.package"],
),
],
)
def test_absolute_names():
service = module.test_function()
assert isinstance(service, Service)
from wiringsamples.package.subpackage.submodule import test_function
service = test_function()
assert isinstance(service, Service)
@mark.parametrize(
"wiring_config",
[
containers.WiringConfiguration(
modules=[".module"],
packages=[".package"],
from_package="wiringsamples",
),
],
)
def test_relative_names_with_explicit_package():
service = module.test_function()
assert isinstance(service, Service)
from wiringsamples.package.subpackage.submodule import test_function
service = test_function()
assert isinstance(service, Service)
@mark.parametrize(
"wiring_config",
[
containers.WiringConfiguration(
modules=[".module"],
packages=[".package"],
),
],
)
def test_relative_names_with_auto_package():
service = module.test_function()
assert isinstance(service, Service)
from wiringsamples.package.subpackage.submodule import test_function
service = test_function()
assert isinstance(service, Service)
@mark.parametrize(
"wiring_config",
[
containers.WiringConfiguration(
modules=[".module"],
auto_wire=False,
),
],
)
def test_auto_wire_disabled(container: Container):
service = module.test_function()
assert isinstance(service, Provide)
container.wire()
service = module.test_function()
assert isinstance(service, Service)

View File

@ -29,73 +29,6 @@ from wiringsamples.service import Service
from wiringsamples.container import Container
class WiringWithWiringConfigInTheContainerTest(unittest.TestCase):
container: Container
original_wiring_config = Container.wiring_config
def tearDown(self) -> None:
Container.wiring_config = self.original_wiring_config
self.container.unwire()
def test_absolute_names(self):
Container.wiring_config = containers.WiringConfiguration(
modules=["wiringsamples.module"],
packages=["wiringsamples.package"],
)
self.container = Container()
service = module.test_function()
self.assertIsInstance(service, Service)
from wiringsamples.package.subpackage.submodule import test_function
service = test_function()
self.assertIsInstance(service, Service)
def test_relative_names_with_explicit_package(self):
Container.wiring_config = containers.WiringConfiguration(
modules=[".module"],
packages=[".package"],
from_package="wiringsamples",
)
self.container = Container()
service = module.test_function()
self.assertIsInstance(service, Service)
from wiringsamples.package.subpackage.submodule import test_function
service = test_function()
self.assertIsInstance(service, Service)
def test_relative_names_with_auto_package(self):
Container.wiring_config = containers.WiringConfiguration(
modules=[".module"],
packages=[".package"],
)
self.container = Container()
service = module.test_function()
self.assertIsInstance(service, Service)
from wiringsamples.package.subpackage.submodule import test_function
service = test_function()
self.assertIsInstance(service, Service)
def test_auto_wire_disabled(self):
Container.wiring_config = containers.WiringConfiguration(
modules=[".module"],
auto_wire=False,
)
self.container = Container()
service = module.test_function()
self.assertIsInstance(service, Provide)
self.container.wire()
service = module.test_function()
self.assertIsInstance(service, Service)
class ModuleAsPackageTest(unittest.TestCase):
def setUp(self):