import os import subprocess import sys from pathlib import Path import pytest sys.path.append(os.path.join(os.path.dirname(__file__), "helpers")) sys.path.append(str(Path(__file__).parent.parent)) # Also add clan_cli to PYTHONPATH from clan_cli.custom_logger import setup_logging from clan_cli.nix import nix_shell pytest_plugins = [ "temporary_dir", "root", "age_keys", "sshd", "command", "ports", "host_group", "fixtures_flakes", ] # Executed on pytest session start def pytest_sessionstart(session: pytest.Session) -> None: # This function will be called once at the beginning of the test session print("Starting pytest session") # You can access the session config, items, testsfailed, etc. print(f"Session config: {session.config}") setup_logging(level="DEBUG") # fixture for git_repo @pytest.fixture def git_repo(tmp_path: Path) -> Path: # initialize a git repository cmd = nix_shell(["nixpkgs#git"], ["git", "init"]) subprocess.run(cmd, cwd=tmp_path, check=True) # set user.name and user.email cmd = nix_shell(["nixpkgs#git"], ["git", "config", "user.name", "test"]) subprocess.run(cmd, cwd=tmp_path, check=True) cmd = nix_shell(["nixpkgs#git"], ["git", "config", "user.email", "test@test.test"]) subprocess.run(cmd, cwd=tmp_path, check=True) # return the path to the git repository return tmp_path