2022-03-27 21:23:35 +03:00
|
|
|
"""Autoloader tests."""
|
2021-10-18 23:19:03 +03:00
|
|
|
|
|
|
|
import contextlib
|
|
|
|
import importlib
|
|
|
|
|
|
|
|
from dependency_injector.wiring import register_loader_containers, unregister_loader_containers
|
|
|
|
from pytest import fixture
|
|
|
|
|
|
|
|
from samples.wiring import module
|
|
|
|
from samples.wiring.service import Service
|
|
|
|
from samples.wiring.container import Container
|
|
|
|
|
|
|
|
|
|
|
|
@fixture
|
|
|
|
def container():
|
|
|
|
container = Container()
|
|
|
|
|
|
|
|
yield container
|
|
|
|
|
|
|
|
with contextlib.suppress(ValueError):
|
|
|
|
unregister_loader_containers(container)
|
|
|
|
container.unwire()
|
|
|
|
importlib.reload(module)
|
|
|
|
|
|
|
|
|
|
|
|
def test_register_container(container: Container) -> None:
|
|
|
|
register_loader_containers(container)
|
|
|
|
importlib.reload(module)
|
|
|
|
|
|
|
|
service = module.test_function()
|
|
|
|
assert isinstance(service, Service)
|
|
|
|
|
|
|
|
|
|
|
|
def test_numpy_scipy_and_builtins_dont_break_wiring(container: Container) -> None:
|
|
|
|
register_loader_containers(container)
|
|
|
|
importlib.reload(module)
|
|
|
|
importlib.import_module("samples.wiring.imports")
|
|
|
|
|
|
|
|
service = module.test_function()
|
|
|
|
|
|
|
|
assert isinstance(service, Service)
|