mirror of
				https://github.com/ets-labs/python-dependency-injector.git
				synced 2025-10-31 16:07:51 +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)
 |