diff --git a/src/main.py b/src/main.py index 1c4e814..6816c61 100644 --- a/src/main.py +++ b/src/main.py @@ -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)