import argparse import os from pathlib import Path from loguru import logger from pytest_abra.coordinator import Coordinator from pytest_abra.dir_manager import DirManager from pytest_abra.utils import get_datetime_string def run(): parser = argparse.ArgumentParser() parser.add_argument("--env_paths", type=str, help="List of loaded env files separated with ;") parser.add_argument("--recipes_dir", type=Path, help="List of loaded env files separated with ;") parser.add_argument("--output_dir", type=Path, help="List of loaded env files separated with ;") 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") args = parser.parse_args() ENV_FILES = [Path(s) for s in args.env_paths.split(";")] # -------------------------- enable playwright debug ------------------------- # if args.debug: os.environ["PWDEBUG"] = "1" # ----------------------------- define session_id ---------------------------- # session_id = "test-" + get_datetime_string() if args.resume: # look for previous session_id pass # session_id = "abc" # ------------------------------- setup logging ------------------------------ # # todo: move to Coordinator DIR = DirManager(output_dir=args.output_dir, session_id=session_id) log_file = DIR.RECORDS / "coordinator.log" logger.add(log_file) # ---------------------------- initialize and run ---------------------------- # coordinator = Coordinator( env_paths_list=ENV_FILES, output_dir=args.output_dir, session_id=session_id, recipes_dir=args.recipes_dir, timeout=args.timeout, ) coordinator.setup_test() coordinator.run_test() coordinator.combine_html() coordinator.collect_traces()