import os import shutil import sys from collections import UserList from pathlib import Path import pytest from pytest_abra.coordinator import Coordinator from pytest_abra.dir_manager import DirManager def test_load_test_credentials(tmp_path: Path): assert "TEST_USER" not in os.environ DIR = DirManager(output_dir=tmp_path, session_id="abc") DIR.create_all_dirs() Coordinator.load_test_credentials(DIR) assert (DIR.STATES / "credentials_test.json").is_file() assert "TEST_USER" in os.environ test_user_before = os.environ["TEST_USER"] # os.environ.clear() # this breaks pytest! del os.environ["TEST_USER"] assert "TEST_USER" not in os.environ Coordinator.load_test_credentials(DIR) assert test_user_before == os.environ["TEST_USER"] @pytest.fixture(scope="session") def tmp_recipes(tmp_path_factory: pytest.TempPathFactory) -> Path: tmp_recipes_target = tmp_path_factory.mktemp("recipes") recipes_dir_source = Path("recipes") shutil.copytree(recipes_dir_source, tmp_recipes_target, dirs_exist_ok=True) return tmp_recipes_target def test_runner_runner_dict_import(tmp_recipes: Path): """import from recipes dict should work, because create_runner_dict has sys.path.append""" RUNNER_DICT = Coordinator.create_runner_dict(tmp_recipes) assert len(RUNNER_DICT.keys()) > 0 # def test_runner_runner_dict_import_patched(tmp_recipes: Path, monkeypatch): # """import from recipes dict should fail without sys.path.append""" # class MockPath(UserList): # def append(self, item): # pass # monkeypatch.setattr(sys, "path", MockPath()) # with pytest.raises(ModuleNotFoundError): # Coordinator.create_runner_dict(tmp_recipes) # def test_something(): # import authentik