import json 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_session_id # ----------------------------- lookup env files ----------------------------- # # This list of env files is the input to testing framework. each env file # triggers the execution of one test Runner and provides configuration to the # tests inside the runner. There can be dependencies, for example wordpress # requires that authentik ran first to create the admin session and the user # session. At the moment, wrong ordering results in unsuccessful test # (wrong ordering would be wordpress env file is before authentik env file). # At the moment, functionailty is only guaranteed if each env file use # a unique TYPE var. ENV_FILES_ROOT = Path("../envfiles").resolve() ENV_FILES = [ ENV_FILES_ROOT / "login.test.dev.local-it.cloud.env", # authentik ENV_FILES_ROOT / "blog.test.dev.local-it.cloud.env", # wordpress ENV_FILES_ROOT / "files.test.dev.local-it.cloud.env", # nextcloud ] # ----------------------------- define ouptut dir ---------------------------- # OUTPUT_DIR = Path("./test-output").resolve() RECIPES_DIR = Path("../recipes").resolve() # --------------------- load credentials to env variables -------------------- # cred_file = Path("credentials.json") with open(cred_file, "r") as f: CREDENTIALS = json.load(f) for key, value in CREDENTIALS.items(): os.environ[key] = value # -------------------------- enable playwright debug ------------------------- # # os.environ["PWDEBUG"] = "1" # ----------------------------- define session_id ---------------------------- # session_id = get_session_id() # 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()