mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-06-23 23:13:13 +03:00
47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
"""Tests for string module and package names."""
|
|
|
|
from typing import Iterator, Optional
|
|
|
|
from pytest import fixture, mark
|
|
from samples.wiring.container import Container
|
|
|
|
from dependency_injector.wiring import _fetch_reference_injections
|
|
|
|
|
|
@fixture
|
|
def container() -> Iterator[Container]:
|
|
container = Container()
|
|
yield container
|
|
container.unwire()
|
|
|
|
|
|
@mark.parametrize(
|
|
["arg_value", "wc_value", "empty_cache"],
|
|
[
|
|
(None, False, True),
|
|
(False, True, True),
|
|
(True, False, False),
|
|
(None, True, False),
|
|
],
|
|
)
|
|
def test_fetch_reference_injections_cache(
|
|
container: Container,
|
|
arg_value: Optional[bool],
|
|
wc_value: bool,
|
|
empty_cache: bool,
|
|
) -> None:
|
|
container.wiring_config.keep_cache = wc_value
|
|
container.wire(
|
|
modules=["samples.wiring.module"],
|
|
packages=["samples.wiring.package"],
|
|
keep_cache=arg_value,
|
|
)
|
|
cache_info = _fetch_reference_injections.cache_info()
|
|
|
|
if empty_cache:
|
|
assert cache_info == (0, 0, None, 0)
|
|
else:
|
|
assert cache_info.hits > 0
|
|
assert cache_info.misses > 0
|
|
assert cache_info.currsize > 0
|