From 27b1aeb827968ba2cda44e447a4985c10bf10d35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 1 Oct 2024 20:44:18 +0200 Subject: [PATCH] add temp_dir fixture --- pkgs/clan-cli/tests/temporary_dir.py | 9 +++++++-- pkgs/clan-cli/tests/test_vars.py | 27 ++++++++++++--------------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/pkgs/clan-cli/tests/temporary_dir.py b/pkgs/clan-cli/tests/temporary_dir.py index 6b519c917..8713ac9f4 100644 --- a/pkgs/clan-cli/tests/temporary_dir.py +++ b/pkgs/clan-cli/tests/temporary_dir.py @@ -11,7 +11,7 @@ log = logging.getLogger(__name__) @pytest.fixture def temporary_home(monkeypatch: pytest.MonkeyPatch) -> Iterator[Path]: - with tempfile.TemporaryDirectory(prefix="pytest-") as dirpath: + with tempfile.TemporaryDirectory(prefix="pytest-home-") as dirpath: xdg_runtime_dir = os.getenv("XDG_RUNTIME_DIR") monkeypatch.setenv("HOME", str(dirpath)) monkeypatch.setenv("XDG_CONFIG_HOME", str(Path(dirpath) / ".config")) @@ -34,5 +34,10 @@ def temporary_home(monkeypatch: pytest.MonkeyPatch) -> Iterator[Path]: monkeypatch.setenv("XDG_RUNTIME_DIR", str(runtime_dir)) monkeypatch.chdir(str(dirpath)) - log.debug("Temp HOME directory: %s", str(dirpath)) + yield Path(dirpath) + + +@pytest.fixture +def temp_dir() -> Iterator[Path]: + with tempfile.TemporaryDirectory(prefix="pytest-") as dirpath: yield Path(dirpath) diff --git a/pkgs/clan-cli/tests/test_vars.py b/pkgs/clan-cli/tests/test_vars.py index 1bbec7ce6..e80d4b9f7 100644 --- a/pkgs/clan-cli/tests/test_vars.py +++ b/pkgs/clan-cli/tests/test_vars.py @@ -3,7 +3,6 @@ import subprocess from dataclasses import dataclass from io import StringIO from pathlib import Path -from tempfile import TemporaryDirectory import pytest from age_keys import SopsSetup @@ -24,7 +23,7 @@ from root import CLAN_CORE from stdout import CaptureOutput -def test_dependencies_as_files() -> None: +def test_dependencies_as_files(temp_dir: Path) -> None: from clan_cli.vars.generate import dependencies_as_dir decrypted_dependencies = { @@ -37,19 +36,17 @@ def test_dependencies_as_files() -> None: "var_2b": b"var_2b", }, } - with TemporaryDirectory() as tmpdir: - dep_tmpdir = Path(tmpdir) - dependencies_as_dir(decrypted_dependencies, dep_tmpdir) - assert dep_tmpdir.is_dir() - assert (dep_tmpdir / "gen_1" / "var_1a").read_bytes() == b"var_1a" - assert (dep_tmpdir / "gen_1" / "var_1b").read_bytes() == b"var_1b" - assert (dep_tmpdir / "gen_2" / "var_2a").read_bytes() == b"var_2a" - assert (dep_tmpdir / "gen_2" / "var_2b").read_bytes() == b"var_2b" - # ensure the files are not world readable - assert (dep_tmpdir / "gen_1" / "var_1a").stat().st_mode & 0o777 == 0o600 - assert (dep_tmpdir / "gen_1" / "var_1b").stat().st_mode & 0o777 == 0o600 - assert (dep_tmpdir / "gen_2" / "var_2a").stat().st_mode & 0o777 == 0o600 - assert (dep_tmpdir / "gen_2" / "var_2b").stat().st_mode & 0o777 == 0o600 + dependencies_as_dir(decrypted_dependencies, temp_dir) + assert temp_dir.is_dir() + assert (temp_dir / "gen_1" / "var_1a").read_bytes() == b"var_1a" + assert (temp_dir / "gen_1" / "var_1b").read_bytes() == b"var_1b" + assert (temp_dir / "gen_2" / "var_2a").read_bytes() == b"var_2a" + assert (temp_dir / "gen_2" / "var_2b").read_bytes() == b"var_2b" + # ensure the files are not world readable + assert (temp_dir / "gen_1" / "var_1a").stat().st_mode & 0o777 == 0o600 + assert (temp_dir / "gen_1" / "var_1b").stat().st_mode & 0o777 == 0o600 + assert (temp_dir / "gen_2" / "var_2a").stat().st_mode & 0o777 == 0o600 + assert (temp_dir / "gen_2" / "var_2b").stat().st_mode & 0o777 == 0o600 def test_required_generators() -> None: