mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2024-11-27 20:13:59 +03:00
64 lines
1.6 KiB
Python
64 lines
1.6 KiB
Python
|
"""Configuration provider tests."""
|
||
|
|
||
|
from dependency_injector import providers
|
||
|
|
||
|
|
||
|
def test_traverse():
|
||
|
config = providers.Configuration(default={"option1": {"option2": "option2"}})
|
||
|
option1 = config.option1
|
||
|
option2 = config.option1.option2
|
||
|
option3 = config.option1[config.option1.option2]
|
||
|
|
||
|
all_providers = list(config.traverse())
|
||
|
|
||
|
assert len(all_providers) == 3
|
||
|
assert option1 in all_providers
|
||
|
assert option2 in all_providers
|
||
|
assert option3 in all_providers
|
||
|
|
||
|
|
||
|
def test_traverse_typed():
|
||
|
config = providers.Configuration()
|
||
|
option = config.option
|
||
|
typed_option = config.option.as_int()
|
||
|
|
||
|
all_providers = list(typed_option.traverse())
|
||
|
|
||
|
assert len(all_providers) == 1
|
||
|
assert option in all_providers
|
||
|
|
||
|
|
||
|
def test_traverse_overridden():
|
||
|
options = {"option1": {"option2": "option2"}}
|
||
|
config = providers.Configuration()
|
||
|
config.from_dict(options)
|
||
|
|
||
|
all_providers = list(config.traverse())
|
||
|
|
||
|
assert len(all_providers) == 1
|
||
|
overridden, = all_providers
|
||
|
assert overridden() == options
|
||
|
assert overridden is config.last_overriding
|
||
|
|
||
|
|
||
|
def test_traverse_overridden_option_1():
|
||
|
options = {"option2": "option2"}
|
||
|
config = providers.Configuration()
|
||
|
config.option1.from_dict(options)
|
||
|
|
||
|
all_providers = list(config.traverse())
|
||
|
|
||
|
assert len(all_providers) == 2
|
||
|
assert config.option1 in all_providers
|
||
|
assert config.last_overriding in all_providers
|
||
|
|
||
|
|
||
|
def test_traverse_overridden_option_2():
|
||
|
options = {"option2": "option2"}
|
||
|
config = providers.Configuration()
|
||
|
config.option1.from_dict(options)
|
||
|
|
||
|
all_providers = list(config.option1.traverse())
|
||
|
|
||
|
assert len(all_providers) == 0
|