add code for different runners
This commit is contained in:
parent
18c695d178
commit
c794d330ab
1 changed files with 29 additions and 14 deletions
41
src/main.py
41
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)
|
||||
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, 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 run_tests(self, runners: list[TestRunner]):
|
||||
for runner in runners:
|
||||
runner.run_tests()
|
||||
|
||||
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)
|
||||
@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_tests(self):
|
||||
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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue