diff --git a/src/dirmanager.py b/src/dirmanager.py new file mode 100644 index 0000000..e5a395e --- /dev/null +++ b/src/dirmanager.py @@ -0,0 +1,38 @@ +from pathlib import Path + + +class DirManager: + def __init__(self, root_tests_dir: Path, session_id: str): + # root test dir + self.root_tests_dir = root_tests_dir + self.session_id = session_id + + self.get_all_dirs() + + def get_all_dirs(self): + self.session_dir = self.root_tests_dir / f"test-{self.session_id}" + self.session_sub_dirs = self.get_subdirs(self.session_dir) + + def create_all_dirs(self): + self.create_dirs(self.root_tests_dir, exist_ok=True) + self.create_dirs(self.session_dir) + self.create_dirs(self.session_sub_dirs) + + def get_subdirs(self, session_dir: Path): + return { + "records": session_dir / Path("records"), + "states": session_dir / Path("states"), + "results": session_dir / Path("results"), + } + + @staticmethod + def create_dirs(dirs: Path | list[Path] | dict[str, Path], exist_ok=False): + match dirs: + case Path(): + dirs.mkdir(exist_ok=exist_ok) + case list(): + for d in dirs: + d.mkdir(exist_ok=exist_ok) + case dict(): + for d in dirs.values(): + d.mkdir(exist_ok=exist_ok) diff --git a/src/main.py b/src/main.py index 4ea53cf..322814f 100644 --- a/src/main.py +++ b/src/main.py @@ -2,6 +2,7 @@ from datetime import datetime from pathlib import Path from typing import Protocol +from dirmanager import DirManager from dotenv import dotenv_values from icecream import ic from tests_authentik.runner_authentik import RunnerAuthentik @@ -72,42 +73,5 @@ class Wrapper: return current_datetime.strftime("%Y-%m-%d-%H-%M-%S") -class DirManager: - def __init__(self, root_tests_dir: Path, session_id: str): - # root test dir - self.root_tests_dir = root_tests_dir - self.session_id = session_id - - self.get_all_dirs() - - def get_all_dirs(self): - self.session_dir = self.root_tests_dir / f"test-{self.session_id}" - self.session_sub_dirs = self.get_subdirs(self.session_dir) - - def create_all_dirs(self): - self.create_dirs(self.root_tests_dir, exist_ok=True) - self.create_dirs(self.session_dir) - self.create_dirs(self.session_sub_dirs) - - def get_subdirs(self, session_dir: Path): - return { - "records": session_dir / Path("records"), - "states": session_dir / Path("states"), - "results": session_dir / Path("results"), - } - - @staticmethod - def create_dirs(dirs: Path | list[Path] | dict[str, Path], exist_ok=False): - match dirs: - case Path(): - dirs.mkdir(exist_ok=exist_ok) - case list(): - for d in dirs: - d.mkdir(exist_ok=exist_ok) - case dict(): - for d in dirs.values(): - d.mkdir(exist_ok=exist_ok) - - if __name__ == "__main__": t = Wrapper(ENV_FILES)