fix dependency types
This commit is contained in:
parent
f0bf98f613
commit
eee64f4542
3 changed files with 15 additions and 9 deletions
|
|
@ -39,14 +39,17 @@ class Coordinator:
|
||||||
|
|
||||||
def _load_runners(self, env_files: list[EnvFile]) -> list[Runner]:
|
def _load_runners(self, env_files: list[EnvFile]) -> list[Runner]:
|
||||||
"""Creates an instance of the correct Runner class for each given env file"""
|
"""Creates an instance of the correct Runner class for each given env file"""
|
||||||
runners = []
|
runners: list[Runner] = []
|
||||||
for env_file in env_files:
|
for env_file in env_files:
|
||||||
RunnerClass = RUNNER_DICT[env_file.config["TYPE"]]
|
RunnerClass = RUNNER_DICT[env_file.config["TYPE"]]
|
||||||
runners.append(
|
dependency_classes: list[type[Runner]] = []
|
||||||
RunnerClass(
|
for dependency in RunnerClass.dependencies:
|
||||||
dotenv_path=env_file.env_path, output_dir=self.DIR.output_dir, session_id=self.DIR.session_id
|
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
|
return runners
|
||||||
|
|
||||||
def combine_html(self) -> None:
|
def combine_html(self) -> None:
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ from dotenv import dotenv_values
|
||||||
|
|
||||||
from src.dir_manager import DirManager
|
from src.dir_manager import DirManager
|
||||||
from src.runner_dict import RUNNER_DICT
|
from src.runner_dict import RUNNER_DICT
|
||||||
|
from src.runner_manager import RunnerManager
|
||||||
|
|
||||||
|
|
||||||
class EnvFile(NamedTuple):
|
class EnvFile(NamedTuple):
|
||||||
|
|
@ -25,6 +26,7 @@ class DependencyRule(NamedTuple):
|
||||||
class EnvManager:
|
class EnvManager:
|
||||||
def __init__(self, env_paths_list: list[Path]):
|
def __init__(self, env_paths_list: list[Path]):
|
||||||
self.env_files: list[EnvFile] = self._get_env_files(env_paths_list)
|
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.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)
|
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:
|
for env_file in env_files:
|
||||||
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.name, dependency=dependency.name)
|
dependency_rule = DependencyRule(child=child_runner_class.name, dependency=dependency)
|
||||||
dependency_rules.append(dependency_rule)
|
dependency_rules.append(dependency_rule)
|
||||||
return dependency_rules
|
return dependency_rules
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ class Runner:
|
||||||
tests: list[Test] = []
|
tests: list[Test] = []
|
||||||
cleanups: list[Test] = []
|
cleanups: list[Test] = []
|
||||||
dependencies: list[str] = []
|
dependencies: list[str] = []
|
||||||
|
_dependency_runners: list[type["Runner"]] = []
|
||||||
|
|
||||||
def __init__(self, dotenv_path: Path, output_dir: Path, session_id: str):
|
def __init__(self, dotenv_path: Path, output_dir: Path, session_id: str):
|
||||||
self.dotenv_path = dotenv_path
|
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]
|
passed_tests = [r.name for r in self.DIRS.RESULTS.glob("*") if "passed" in r.name]
|
||||||
results = []
|
results = []
|
||||||
for dependencie_runner in self.dependencies:
|
for dependency_runner in self._dependency_runners:
|
||||||
for setup_name in dependencie_runner.setups:
|
for setup_name in dependency_runner.setups:
|
||||||
dependencie_identifier = self.combine_names(dependencie_runner.name, setup_name.test_file)
|
dependencie_identifier = self.combine_names(dependency_runner.name, setup_name.test_file)
|
||||||
results.append(any(dependencie_identifier in f for f in passed_tests))
|
results.append(any(dependencie_identifier in f for f in passed_tests))
|
||||||
return all(results)
|
return all(results)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue