Skip to content

Commit

Permalink
Add test
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewelwell authored and khvn26 committed May 20, 2024
1 parent fb3d9e4 commit 3117cee
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 0 deletions.
8 changes: 8 additions & 0 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,3 +68,11 @@ def client():

with TestClient(app) as c:
yield c


@pytest.fixture
def mock_json_config_file(mocker: MockerFixture) -> typing.Callable[[str], None]:
def _inner(raw_json: str) -> None:
mocker.patch("edge_proxy.settings.Path.read_text", return_value=raw_json)

return _inner
58 changes: 58 additions & 0 deletions tests/test_settings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import json
import typing

import pytest

from src.edge_proxy.settings import AppConfig


@pytest.mark.parametrize(
"config_file_raw_json, settings_tests",
(
(
json.dumps(
{
"environment_key_pairs": [
{"server_side_key": "abc123", "client_side_key": "ser.def456"}
],
"api_poll_frequency": 10,
"api_poll_timeout": 10,
"api_url": "https://api.flagsmith.com/api/v1",
},
),
{"api_poll_frequency_seconds": 10, "api_poll_timeout_seconds": 10},
),
(
json.dumps(
{
"environment_key_pairs": [
{"server_side_key": "abc123", "client_side_key": "ser.def456"}
],
"api_poll_frequency_seconds": 10,
"api_poll_timeout_seconds": 10,
"api_url": "https://api.flagsmith.com/api/v1",
}
),
{"api_poll_frequency_seconds": 10, "api_poll_timeout_seconds": 10},
),
),
)
def test_settings_are_loaded_correctly(
mock_json_config_file: typing.Callable[[str], None],
config_file_raw_json: str,
settings_tests: dict[str, typing.Any],
) -> None:
"""
Parametrized test which accepts a raw json config file, and a dictionary representing the
specific tests that are required against the resulting config.
"""

# Given
mock_json_config_file(config_file_raw_json)

# When
config = AppConfig()

# Then
for key, value in settings_tests.items():
assert getattr(config, key) == value

0 comments on commit 3117cee

Please sign in to comment.