import subprocess from pathlib import Path import pytest from pytest_abra import DirManager from pytest_abra.utils import load_json_to_environ @pytest.fixture(scope="session") def session_tmp_path_testout(tmp_path_factory: pytest.TempPathFactory) -> Path: return tmp_path_factory.mktemp("test_out") @pytest.mark.slow def test_abratest_cli_full_integration(session_tmp_path_testout: Path): """run abratest against the dev instance""" # --------------------- load credentials to env variables -------------------- # cred_file = Path("credentials.json") load_json_to_environ(cred_file) # --------------------------------- env files -------------------------------- # 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 ] ENV_PATHS = ";".join([x.as_posix() for x in ENV_FILES]) # ----------------------------------- dirs ----------------------------------- # RECIPES_DIR = Path("./recipes").resolve() # OUTPUT_DIR = Path("./test-output").resolve() OUTPUT_DIR = session_tmp_path_testout.resolve() # ------------------------------------ run ----------------------------------- # result = subprocess.run( [ "abratest", "--env_paths", ENV_PATHS, "--recipes_dir", RECIPES_DIR, "--output_dir", OUTPUT_DIR, "--session_id", "abc", ] ) assert result.returncode == 0 @pytest.mark.slow def test_results_abra(session_tmp_path_testout: Path): OUTPUT_DIR = session_tmp_path_testout.resolve() DIR = DirManager(output_dir=OUTPUT_DIR, session_id="abc") all_files = list(DIR.STATUS.rglob("*")) passed_files = list(DIR.STATUS.rglob("passed-*")) assert len(all_files) > 0 assert len(all_files) == len(passed_files)