add code for different runners

This commit is contained in:
Daniel 2023-11-22 13:23:47 +01:00
parent 18c695d178
commit c794d330ab

View file

@ -32,28 +32,37 @@ RUNNER_DICT: dict[str, type[TestRunner]] = {"wordpress": RunnerWordpress}
class Wrapper:
def __init__(self, env_files: list[Path]):
self.env_files = env_files
self.runners: list[TestRunner] = []
self.setup_tests()
return
self.setup_test_dir()
dotenv_path = self.env_files[0]
assert dotenv_path.is_file()
config: dict[str, str] = dotenv_values(dotenv_path)
runner = self.load_runners(config, dotenv_path)
runner.run_tests()
self.check_env_files(self.env_files)
self.runners: list[TestRunner] = self.load_runners(self.env_files)
self.run_tests(self.runners)
def load_runners(self, config: dict[str, str], dotenv_path: Path) -> TestRunner:
config_type = config["TYPE"]
ic(config_type)
RunnerClass = RUNNER_DICT[config_type]
return RunnerClass(dotenv_path)
def load_runners(self, env_files: list[Path]) -> list[TestRunner]:
runners = []
for env_file in env_files:
config: dict[str, str] = dotenv_values(env_file)
RunnerClass = RUNNER_DICT[config["TYPE"]]
runners.append(RunnerClass(env_file))
return runners
def setup_tests(self):
def run_tests(self, runners: list[TestRunner]):
for runner in runners:
runner.run_tests()
@staticmethod
def check_env_files(env_files: list[Path]):
"""checks if file exist for every file in list"""
for env_file in env_files:
assert env_file.is_file()
def setup_test_dir(self):
session_id = self.get_session_id()
test_dir = self.create_test_dir(session_id)
self.create_records_dir(test_dir)
self.create_states_dir(test_dir)
self.create_results_dir(test_dir)
@staticmethod
def get_session_id() -> str:
@ -79,6 +88,12 @@ class Wrapper:
states.mkdir()
return states
@staticmethod
def create_results_dir(test_dir: Path) -> Path:
results = test_dir / Path("results")
results.mkdir()
return results
if __name__ == "__main__":
t = Wrapper(ENV_FILES)