move dirmanager to its own file
This commit is contained in:
parent
4534ee892b
commit
d4e9a50ca6
2 changed files with 39 additions and 37 deletions
38
src/dirmanager.py
Normal file
38
src/dirmanager.py
Normal file
|
|
@ -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)
|
||||||
38
src/main.py
38
src/main.py
|
|
@ -2,6 +2,7 @@ from datetime import datetime
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Protocol
|
from typing import Protocol
|
||||||
|
|
||||||
|
from dirmanager import DirManager
|
||||||
from dotenv import dotenv_values
|
from dotenv import dotenv_values
|
||||||
from icecream import ic
|
from icecream import ic
|
||||||
from tests_authentik.runner_authentik import RunnerAuthentik
|
from tests_authentik.runner_authentik import RunnerAuthentik
|
||||||
|
|
@ -72,42 +73,5 @@ class Wrapper:
|
||||||
return current_datetime.strftime("%Y-%m-%d-%H-%M-%S")
|
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__":
|
if __name__ == "__main__":
|
||||||
t = Wrapper(ENV_FILES)
|
t = Wrapper(ENV_FILES)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue