mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2024-11-24 10:34:01 +03:00
753e863d02
* Add implementation and tests * Refactor naming in configuration fixtures * Add typing for .from_json() * Move get/set_ini_files() methods upper * Add init implementation and tests * Refactor typing tests * Add examples * Add docs * Update docs index and readme * Update changelog
174 lines
4.1 KiB
Python
174 lines
4.1 KiB
Python
"""Fixtures module."""
|
|
|
|
import json
|
|
import os
|
|
|
|
from dependency_injector import providers
|
|
from pytest import fixture
|
|
|
|
|
|
@fixture
|
|
def config_type():
|
|
return "default"
|
|
|
|
|
|
@fixture
|
|
def config(config_type):
|
|
if config_type == "strict":
|
|
return providers.Configuration(strict=True)
|
|
elif config_type == "default":
|
|
return providers.Configuration()
|
|
else:
|
|
raise ValueError("Undefined config type \"{0}\"".format(config_type))
|
|
|
|
|
|
@fixture
|
|
def ini_config_file_1(tmp_path):
|
|
config_file = str(tmp_path / "config_1.ini")
|
|
with open(config_file, "w") as file:
|
|
file.write(
|
|
"[section1]\n"
|
|
"value1=1\n"
|
|
"\n"
|
|
"[section2]\n"
|
|
"value2=2\n"
|
|
)
|
|
return config_file
|
|
|
|
|
|
@fixture
|
|
def ini_config_file_2(tmp_path):
|
|
config_file = str(tmp_path / "config_2.ini")
|
|
with open(config_file, "w") as file:
|
|
file.write(
|
|
"[section1]\n"
|
|
"value1=11\n"
|
|
"value11=11\n"
|
|
"[section3]\n"
|
|
"value3=3\n"
|
|
)
|
|
return config_file
|
|
|
|
|
|
@fixture
|
|
def ini_config_file_3(tmp_path):
|
|
config_file = str(tmp_path / "config_3.ini")
|
|
with open(config_file, "w") as file:
|
|
file.write(
|
|
"[section1]\n"
|
|
"value1=${CONFIG_TEST_ENV}\n"
|
|
"value2=${CONFIG_TEST_PATH}/path\n"
|
|
)
|
|
return config_file
|
|
|
|
|
|
@fixture
|
|
def yaml_config_file_1(tmp_path):
|
|
config_file = str(tmp_path / "config_1.yml")
|
|
with open(config_file, "w") as file:
|
|
file.write(
|
|
"section1:\n"
|
|
" value1: 1\n"
|
|
"\n"
|
|
"section2:\n"
|
|
" value2: 2\n"
|
|
)
|
|
return config_file
|
|
|
|
|
|
@fixture
|
|
def yaml_config_file_2(tmp_path):
|
|
config_file = str(tmp_path / "config_2.yml")
|
|
with open(config_file, "w") as file:
|
|
file.write(
|
|
"section1:\n"
|
|
" value1: 11\n"
|
|
" value11: 11\n"
|
|
"section3:\n"
|
|
" value3: 3\n"
|
|
)
|
|
return config_file
|
|
|
|
|
|
@fixture
|
|
def yaml_config_file_3(tmp_path):
|
|
config_file = str(tmp_path / "config_3.yml")
|
|
with open(config_file, "w") as file:
|
|
file.write(
|
|
"section1:\n"
|
|
" value1: ${CONFIG_TEST_ENV}\n"
|
|
" value2: ${CONFIG_TEST_PATH}/path\n"
|
|
)
|
|
return config_file
|
|
|
|
|
|
@fixture
|
|
def json_config_file_1(tmp_path):
|
|
config_file = str(tmp_path / "config_1.json")
|
|
with open(config_file, "w") as file:
|
|
file.write(
|
|
json.dumps(
|
|
{
|
|
"section1": {
|
|
"value1": 1,
|
|
},
|
|
"section2": {
|
|
"value2": 2,
|
|
},
|
|
},
|
|
),
|
|
)
|
|
return config_file
|
|
|
|
|
|
@fixture
|
|
def json_config_file_2(tmp_path):
|
|
config_file = str(tmp_path / "config_2.json")
|
|
with open(config_file, "w") as file:
|
|
file.write(
|
|
json.dumps(
|
|
{
|
|
"section1": {
|
|
"value1": 11,
|
|
"value11": 11,
|
|
},
|
|
"section3": {
|
|
"value3": 3,
|
|
},
|
|
},
|
|
),
|
|
)
|
|
return config_file
|
|
|
|
|
|
@fixture
|
|
def json_config_file_3(tmp_path):
|
|
config_file = str(tmp_path / "config_3.json")
|
|
with open(config_file, "w") as file:
|
|
file.write(
|
|
json.dumps(
|
|
{
|
|
"section1": {
|
|
"value1": "${CONFIG_TEST_ENV}",
|
|
"value2": "${CONFIG_TEST_PATH}/path",
|
|
},
|
|
},
|
|
),
|
|
)
|
|
return config_file
|
|
|
|
|
|
@fixture(autouse=True)
|
|
def environment_variables():
|
|
os.environ["CONFIG_TEST_ENV"] = "test-value"
|
|
os.environ["CONFIG_TEST_PATH"] = "test-path"
|
|
os.environ["DEFINED"] = "defined"
|
|
os.environ["EMPTY"] = ""
|
|
os.environ["CONFIG_INT"] = "42"
|
|
yield
|
|
os.environ.pop("CONFIG_TEST_ENV", None)
|
|
os.environ.pop("CONFIG_TEST_PATH", None)
|
|
os.environ.pop("DEFINED", None)
|
|
os.environ.pop("EMPTY", None)
|
|
os.environ.pop("CONFIG_INT", None)
|