From 7471f8dd91f778cfc4b87f53395d2fe842172979 Mon Sep 17 00:00:00 2001 From: Brian Harring Date: Tue, 28 Oct 2025 10:35:28 +0100 Subject: [PATCH] use a fake $HOME for tests git uses both repo/.git/config and $HOME/.gitconfig, thus the tests have been picking up my commit.gpgsign=1 . Whilst pkgcore's git repo fixture can be tweaked to add that suppression, hygenically it's better to disconnect the users persona configuration from tests in full. TL;dr: this stops tests from popping a gpg key decrypt randomly for my local dev. Signed-off-by: Brian Harring --- tests/conftest.py | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index dc42ba5..feb90ea 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,13 +1,35 @@ +import os +import shutil +import tempfile + import pytest +from snakeoil.cli import arghparse + from pkgdev.cli import Tool from pkgdev.scripts import pkgdev -from snakeoil.cli import arghparse pytest_plugins = ["pkgcore"] @pytest.fixture(scope="session") -def tool(): +def temporary_home(): + """Generate a temporary directory and set$HOME to it.""" + old_home = os.environ.get("HOME") + new_home = None + try: + new_home = tempfile.mkdtemp() + os.environ["HOME"] = new_home + yield + finally: + if old_home is None: + del os.environ["HOME"] + else: + os.environ["HOME"] = old_home + shutil.rmtree(new_home) # pyright: ignore[reportArgumentType] + + +@pytest.fixture(scope="session") +def tool(temporary_home): """Generate a tool utility for running pkgdev.""" return Tool(pkgdev.argparser)