e2e_tests/pytest_abra/cli.py

58 lines
2 KiB
Python

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=str, help="List of loaded env files separated with ;")
parser.add_argument("--output_dir", type=str, help="List of loaded env files separated with ;")
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, only running tests without status 'passed'"
)
args = parser.parse_args()
ENV_FILES = [Path(s) for s in args.env_paths.split(";")]
# ----------------------------- define ouptut dir ---------------------------- #
RECIPES_DIR = Path(args.recipes_dir)
OUTPUT_DIR = Path(args.output_dir)
# -------------------------- 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 ------------------------------ #
DIR = DirManager(output_dir=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=OUTPUT_DIR, session_id=session_id, recipes_dir=RECIPES_DIR
)
coordinator.setup_test()
coordinator.run_test()
coordinator.combine_html()
coordinator.collect_traces()