import json import os from pathlib import Path from loguru import logger from abratest.coordinator import Coordinator from abratest.dir_manager import DirManager from abratest.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 = [ Path("envfiles/login.test.dev.local-it.cloud.env"), # authentik Path("envfiles/blog.test.dev.local-it.cloud.env"), # wordpress # Path("envfiles/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 ------------------------- # # add abra-testing dir os.environ["PYTEST_PLUGINS"] = "abratest.plugin-abra" # "abratest.plugin,abratest.other" # 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()