50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
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
|