diff --git a/pytest_abra/cli.py b/pytest_abra/cli.py index 2a9c3ae..c26f79f 100644 --- a/pytest_abra/cli.py +++ b/pytest_abra/cli.py @@ -6,7 +6,7 @@ from loguru import logger from pytest_abra import Coordinator from pytest_abra.dir_manager import DirManager -from pytest_abra.utils import get_datetime_string +from pytest_abra.utils import get_session_id def run(): @@ -17,6 +17,8 @@ def run(): parser.add_argument("--timeout", type=int, help="Set Playwright timeout in ms", default=20_000) parser.add_argument("--debug", action="store_true", help="Enable Playwright debug mode") parser.add_argument("--resume", action="store_true", help="Re-run the most recent test, skipping passed tests") + parser.add_argument("--session_id", help="Session dir name (inside output_dir). Overwrites --resume") + args = parser.parse_args() env_paths = [Path(s) for s in args.env_paths.split(";")] @@ -27,11 +29,7 @@ def run(): # ----------------------------- define session_id ---------------------------- # - session_id = "test-" + get_datetime_string() - if args.resume: - latest_session_id = DirManager.get_latest_session_id(args.output_dir) - if latest_session_id: - session_id = DirManager.get_latest_session_id(args.output_dir) + session_id = get_session_id(args.session_id, args.resume, args.output_dir) # ------------------------------- setup logging ------------------------------ # diff --git a/pytest_abra/utils.py b/pytest_abra/utils.py index b9fcb2d..8171a97 100644 --- a/pytest_abra/utils.py +++ b/pytest_abra/utils.py @@ -9,6 +9,8 @@ from urllib.parse import urlunparse from loguru import logger +from pytest_abra.dir_manager import DirManager + @dataclass class BaseUrl: @@ -64,3 +66,15 @@ def load_json_to_environ(cred_file: Path) -> None: for key, value in CREDENTIALS.items(): os.environ[key] = value + + +def get_session_id(args_session_id: str, args_resume: bool, args_output_dir: Path) -> str: + """converts the cli arguments to the correct session_id""" + session_id = args_session_id + if not session_id: + session_id = "test-" + get_datetime_string() + if args_resume: + latest_session_id = DirManager.get_latest_session_id(args_output_dir) + if latest_session_id: + session_id = latest_session_id + return session_id