fix dependency types

This commit is contained in:
Daniel 2023-12-05 17:04:58 +01:00
parent f0bf98f613
commit eee64f4542
3 changed files with 15 additions and 9 deletions

View file

@ -39,14 +39,17 @@ 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 = []
runners: list[Runner] = []
for env_file in env_files:
RunnerClass = RUNNER_DICT[env_file.config["TYPE"]]
runners.append(
RunnerClass(
dependency_classes: list[type[Runner]] = []
for dependency in RunnerClass.dependencies:
dependency_classes.append(RUNNER_DICT[dependency])
runner_instance = RunnerClass(
dotenv_path=env_file.env_path, output_dir=self.DIR.output_dir, session_id=self.DIR.session_id
)
)
runner_instance._dependency_runners = dependency_classes
runners.append(runner_instance)
return runners
def combine_html(self) -> None:

View file

@ -6,6 +6,7 @@ from dotenv import dotenv_values
from src.dir_manager import DirManager
from src.runner_dict import RUNNER_DICT
from src.runner_manager import RunnerManager
class EnvFile(NamedTuple):
@ -25,6 +26,7 @@ class DependencyRule(NamedTuple):
class EnvManager:
def __init__(self, env_paths_list: list[Path]):
self.env_files: list[EnvFile] = self._get_env_files(env_paths_list)
self.runner_manager = RunnerManager(self.env_files)
self.dependency_rules: list[DependencyRule] = self._get_dependency_rules(self.env_files)
self.env_files = self.sort_env_files_by_rule(self.env_files, self.dependency_rules)
@ -46,7 +48,7 @@ class EnvManager:
for env_file in env_files:
child_runner_class = RUNNER_DICT[env_file.env_type]
for dependency in child_runner_class.dependencies:
dependency_rule = DependencyRule(child=child_runner_class.name, dependency=dependency.name)
dependency_rule = DependencyRule(child=child_runner_class.name, dependency=dependency)
dependency_rules.append(dependency_rule)
return dependency_rules

View file

@ -23,6 +23,7 @@ class Runner:
tests: list[Test] = []
cleanups: list[Test] = []
dependencies: list[str] = []
_dependency_runners: list[type["Runner"]] = []
def __init__(self, dotenv_path: Path, output_dir: Path, session_id: str):
self.dotenv_path = dotenv_path
@ -167,9 +168,9 @@ class Runner:
passed_tests = [r.name for r in self.DIRS.RESULTS.glob("*") if "passed" in r.name]
results = []
for dependencie_runner in self.dependencies:
for setup_name in dependencie_runner.setups:
dependencie_identifier = self.combine_names(dependencie_runner.name, setup_name.test_file)
for dependency_runner in self._dependency_runners:
for setup_name in dependency_runner.setups:
dependencie_identifier = self.combine_names(dependency_runner.name, setup_name.test_file)
results.append(any(dependencie_identifier in f for f in passed_tests))
return all(results)