refactor so that coordinator instance is available in runner instance (#8)

-> all program states available

Reviewed-on: local-it-infrastructure/e2e_tests#8
Co-authored-by: Daniel <d.brummerloh@gmail.com>
Co-committed-by: Daniel <d.brummerloh@gmail.com>
This commit is contained in:
Daniel 2023-12-06 12:05:13 +01:00 committed by dan
parent f9c21c6e6b
commit 4c5a470a70
15 changed files with 74 additions and 53 deletions

View file

@ -42,14 +42,9 @@ class Coordinator:
def _load_runners(self, env_files: list[EnvFile]) -> list[Runner]:
"""Creates an instance of the correct Runner class for each given env file"""
runners: list[Runner] = []
for env_file in env_files:
for index, env_file in enumerate(env_files):
RunnerClass = self.RUNNER_DICT[env_file.config["TYPE"]]
dependency_classes: list[type[Runner]] = []
for dependency in RunnerClass.dependencies:
dependency_classes.append(self.RUNNER_DICT[dependency])
runner_instance = RunnerClass(dotenv_path=env_file.env_path, DIR=self.DIR)
runner_instance._dependency_runners = dependency_classes
runners.append(runner_instance)
runners.append(RunnerClass(coordinator=self, runner_index=index))
return runners
def combine_html(self) -> None:
@ -104,5 +99,5 @@ class Coordinator:
assert len(runner_class_names) == 1
runner_class_name = runner_class_names[0]
RunnerClass: type[Runner] = getattr(module, runner_class_name)
RUNNER_DICT[RunnerClass.name] = RunnerClass
RUNNER_DICT[RunnerClass.env_type] = RunnerClass
return RUNNER_DICT