From b2eb1217c24813ee8963421682ae5db3582ca214 Mon Sep 17 00:00:00 2001 From: Roman Mogylatov Date: Tue, 26 Oct 2021 20:17:13 -0400 Subject: [PATCH] Add more tests and example --- .../configuration/configuration_ini_init.py | 25 ++++++++++++++++++ .../instance/test_load_config_py2_py3.py | 26 +++++++++++++++---- 2 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 examples/providers/configuration/configuration_ini_init.py diff --git a/examples/providers/configuration/configuration_ini_init.py b/examples/providers/configuration/configuration_ini_init.py new file mode 100644 index 00000000..cc4dfe24 --- /dev/null +++ b/examples/providers/configuration/configuration_ini_init.py @@ -0,0 +1,25 @@ +"""`Configuration` provider values loading example.""" + +from dependency_injector import containers, providers + + +class Container(containers.DeclarativeContainer): + + config = providers.Configuration(ini_files=["./config.ini"]) + + +if __name__ == "__main__": + container = Container() + + assert container.config() == { + "aws": { + "access_key_id": "KEY", + "secret_access_key": "SECRET", + }, + } + assert container.config.aws() == { + "access_key_id": "KEY", + "secret_access_key": "SECRET", + } + assert container.config.aws.access_key_id() == "KEY" + assert container.config.aws.secret_access_key() == "SECRET" diff --git a/tests/unit/containers/instance/test_load_config_py2_py3.py b/tests/unit/containers/instance/test_load_config_py2_py3.py index 3a2c79e4..955ab213 100644 --- a/tests/unit/containers/instance/test_load_config_py2_py3.py +++ b/tests/unit/containers/instance/test_load_config_py2_py3.py @@ -6,21 +6,37 @@ from pytest import fixture @fixture def yaml_config_file(tmp_path): - yaml_config_file = str(tmp_path / "config.yml") - with open(yaml_config_file, "w") as file: + config_file = str(tmp_path / "config.yml") + with open(config_file, "w") as file: file.write( "section1:\n" " value1: yaml-loaded\n" ) - return yaml_config_file + return config_file -def test_auto_load(yaml_config_file): +@fixture +def ini_config_file(tmp_path): + config_file = str(tmp_path / "config.ini") + with open(config_file, "w") as file: + file.write( + "[section2]:\n" + "value2 = ini-loaded\n" + ) + return config_file + + + +def test_auto_load(yaml_config_file, ini_config_file): class ContainerWithConfig(containers.DeclarativeContainer): - config = providers.Configuration(yaml_files=[yaml_config_file]) + config = providers.Configuration( + yaml_files=[yaml_config_file], + ini_files=[ini_config_file], + ) container = ContainerWithConfig() assert container.config.section1.value1() == "yaml-loaded" + assert container.config.section2.value2() == "ini-loaded" def test_auto_load_and_overriding(yaml_config_file):