55 lines
2.1 KiB
Python
55 lines
2.1 KiB
Python
import argparse
|
|
import os
|
|
from pathlib import Path
|
|
|
|
from loguru import logger
|
|
|
|
from pytest_abra 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 ;", required=True)
|
|
parser.add_argument("--recipes_dir", type=Path, help="List of loaded env files separated with ;", required=True)
|
|
parser.add_argument("--output_dir", type=Path, help="List of loaded env files separated with ;", required=True)
|
|
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:
|
|
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)
|
|
|
|
# ------------------------------- 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()
|