feat(config): Read secrets from .env file and environemnt variables

This commit is contained in:
TrisNol
2023-09-09 17:59:30 +02:00
parent 2cd8def200
commit 0f6ea8a1ec
5 changed files with 133 additions and 3 deletions

View File

@ -3,7 +3,10 @@ from unittest.mock import mock_open, patch
import pytest
from aki_prj23_transparenzregister.config.config_providers import JsonFileConfigProvider
from aki_prj23_transparenzregister.config.config_providers import (
EnvironmentConfigProvider,
JsonFileConfigProvider,
)
def test_json_provider_init_fail() -> None:
@ -72,3 +75,52 @@ def test_json_provider_get_mongo() -> None:
assert config.hostname == data["mongo"]["host"]
assert config.database == data["mongo"]["database"]
assert config.port == data["mongo"]["port"]
def test_env_provider_constructor() -> None:
with patch("os.environ.keys") as mock_keys:
keys = ["PYTHON_TEST", "NOT_PYTHON_TEST"]
mock_keys.return_value = keys
with patch("os.environ.get") as mock_get:
value = "test"
mock_get.return_value = value
provider = EnvironmentConfigProvider()
assert provider.__data__ == {"TEST": value}
def test_env_provider_postgres() -> None:
provider = EnvironmentConfigProvider()
env_data = {
"POSTGRES_USERNAME": "postgres",
"POSTGRES_PASSWORD": "postgres",
"POSTGRES_HOST": "localhost",
"POSTGRES_DATABASE": "postgres",
"POSTGRES_PORT": "5432",
}
provider.__data__ = env_data
conn_string = provider.get_postgre_connection_string()
assert conn_string.database == env_data["POSTGRES_DATABASE"]
assert conn_string.host == env_data["POSTGRES_HOST"]
assert conn_string.password == env_data["POSTGRES_PASSWORD"]
assert conn_string.port == env_data["POSTGRES_PORT"]
assert conn_string.username == env_data["POSTGRES_USERNAME"]
def test_env_provider_mongodb() -> None:
provider = EnvironmentConfigProvider()
env_data = {
"MONGO_USERNAME": "username",
"MONGO_HOST": "localhost",
"MONGO_PASSWORD": "password",
"MONGO_PORT": 27017,
"MONGO_DATABASE": "transparenzregister",
}
provider.__data__ = env_data
conn_string = provider.get_mongo_connection_string()
assert conn_string.database == env_data["MONGO_DATABASE"]
assert conn_string.hostname == env_data["MONGO_HOST"]
assert conn_string.password == env_data["MONGO_PASSWORD"]
assert conn_string.port == env_data["MONGO_PORT"]
assert conn_string.username == env_data["MONGO_USERNAME"]