add missing key assertion in _get_dependency_rules and add test case
This commit is contained in:
parent
88d466c745
commit
290b3f879a
2 changed files with 15 additions and 0 deletions
|
|
@ -44,6 +44,7 @@ class EnvManager:
|
||||||
def _get_dependency_rules(env_files: list[EnvFile], RUNNER_DICT: dict[str, type["Runner"]]) -> list[DependencyRule]:
|
def _get_dependency_rules(env_files: list[EnvFile], RUNNER_DICT: dict[str, type["Runner"]]) -> list[DependencyRule]:
|
||||||
dependency_rules: list[DependencyRule] = []
|
dependency_rules: list[DependencyRule] = []
|
||||||
for env_file in env_files:
|
for env_file in env_files:
|
||||||
|
assert env_file.env_type in RUNNER_DICT, f"no runner for env_type={env_file.env_type} found in RUNNER_DICT"
|
||||||
child_runner_class = RUNNER_DICT[env_file.env_type]
|
child_runner_class = RUNNER_DICT[env_file.env_type]
|
||||||
for dependency in child_runner_class.dependencies:
|
for dependency in child_runner_class.dependencies:
|
||||||
dependency_rule = DependencyRule(child=child_runner_class.env_type, dependency=dependency)
|
dependency_rule = DependencyRule(child=child_runner_class.env_type, dependency=dependency)
|
||||||
|
|
|
||||||
|
|
@ -102,3 +102,17 @@ def test_env_manager() -> None:
|
||||||
assert ENV.env_files[0].env_type == "authentik"
|
assert ENV.env_files[0].env_type == "authentik"
|
||||||
assert ENV.env_files[1].env_type == "authentik"
|
assert ENV.env_files[1].env_type == "authentik"
|
||||||
assert ENV.env_files[2].env_type == "wordpress"
|
assert ENV.env_files[2].env_type == "wordpress"
|
||||||
|
|
||||||
|
|
||||||
|
def test_RUNNER_DICT_missing_key() -> None:
|
||||||
|
"""RUNNER_DICT missing wordpress key while .env file with TYPE=wordpress given"""
|
||||||
|
env_paths_list = [
|
||||||
|
Path("envfiles/blog.test.dev.local-it.cloud.env"), # wordpress
|
||||||
|
Path("envfiles/login.test.dev.local-it.cloud.env"), # authentik
|
||||||
|
Path("envfiles/login.test.dev.local-it.cloud.env"), # authentik
|
||||||
|
]
|
||||||
|
RUNNER_DICT_COPY = RUNNER_DICT.copy()
|
||||||
|
del RUNNER_DICT_COPY["wordpress"]
|
||||||
|
with pytest.raises(AssertionError) as excinfo:
|
||||||
|
EnvManager(env_paths_list, RUNNER_DICT_COPY)
|
||||||
|
assert "no runner for" in str(excinfo.value)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue