remove RunnerMeta, save path to class var instead
This commit is contained in:
parent
7ec75cd6a0
commit
edc8c9a2f5
3 changed files with 12 additions and 19 deletions
|
|
@ -2,7 +2,6 @@ import importlib
|
|||
import re
|
||||
import sys
|
||||
from pathlib import Path
|
||||
from typing import NamedTuple
|
||||
|
||||
from loguru import logger
|
||||
|
||||
|
|
@ -13,11 +12,6 @@ from pytest_abra.runner import Runner
|
|||
from pytest_abra.utils import rmtree
|
||||
|
||||
|
||||
class RunnerMeta(NamedTuple):
|
||||
cls: type[Runner]
|
||||
path: Path
|
||||
|
||||
|
||||
class Coordinator:
|
||||
def __init__(
|
||||
self,
|
||||
|
|
@ -60,9 +54,8 @@ class Coordinator:
|
|||
"""Creates an instance of the correct Runner class for each given env file"""
|
||||
runners: list[Runner] = []
|
||||
for index, env_file in enumerate(env_files):
|
||||
meta = self.RUNNER_DICT[env_file.env_config["TYPE"]]
|
||||
RunnerClass = meta.cls
|
||||
runners.append(RunnerClass(coordinator=self, runner_index=index, runner_dir=meta.path))
|
||||
RunnerClass = self.RUNNER_DICT[env_file.env_config["TYPE"]]
|
||||
runners.append(RunnerClass(coordinator=self, runner_index=index))
|
||||
return runners
|
||||
|
||||
def combine_html(self) -> None:
|
||||
|
|
@ -96,14 +89,14 @@ class Coordinator:
|
|||
rmtree(trace_root_dir)
|
||||
|
||||
@staticmethod
|
||||
def create_runner_dict(recipes_dir: Path) -> dict[str, RunnerMeta]:
|
||||
def create_runner_dict(recipes_dir: Path) -> dict[str, type[Runner]]:
|
||||
"""Creates a dictionary holding all the RunnerClasses that can be discovered in recipes_dir
|
||||
|
||||
The Runner classes are automatically imported with importlib. The imports are successful
|
||||
because recipes_dir is added to sys.path.
|
||||
"""
|
||||
|
||||
RUNNER_DICT: dict[str, RunnerMeta] = dict()
|
||||
RUNNER_DICT: dict[str, type[Runner]] = dict()
|
||||
runner_discovery_pattern = re.compile("Runner.+")
|
||||
|
||||
# make it possible to import modules from recipes_dir
|
||||
|
|
@ -116,5 +109,6 @@ 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.env_type] = RunnerMeta(cls=RunnerClass, path=module_path)
|
||||
RunnerClass._tests_path = module_path
|
||||
RUNNER_DICT[RunnerClass.env_type] = RunnerClass
|
||||
return RUNNER_DICT
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue