mirror of
				https://github.com/ets-labs/python-dependency-injector.git
				synced 2025-11-04 18:07:44 +03:00 
			
		
		
		
	* 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)
 |