diff --git a/pkgs/clan-cli/tests/conftest.py b/pkgs/clan-cli/tests/conftest.py index 70ebd8271..4c1ac4d2e 100644 --- a/pkgs/clan-cli/tests/conftest.py +++ b/pkgs/clan-cli/tests/conftest.py @@ -1,12 +1,5 @@ import os import sys -import tempfile -from pathlib import Path -from typing import Generator - -import pytest - -from clan_cli.dirs import nixpkgs_source sys.path.append(os.path.join(os.path.dirname(__file__), "helpers")) @@ -20,32 +13,5 @@ pytest_plugins = [ "command", "ports", "host_group", + "machine_flake", ] - - -@pytest.fixture(scope="module") -def monkeymodule() -> Generator[pytest.MonkeyPatch, None, None]: - with pytest.MonkeyPatch.context() as mp: - yield mp - - -@pytest.fixture(scope="module") -def machine_flake(monkeymodule: pytest.MonkeyPatch) -> Generator[Path, None, None]: - template = Path(__file__).parent / "machine_flake" - # copy the template to a new temporary location - with tempfile.TemporaryDirectory() as tmpdir_: - flake = Path(tmpdir_) - for path in template.glob("**/*"): - if path.is_dir(): - (flake / path.relative_to(template)).mkdir() - else: - (flake / path.relative_to(template)).write_text(path.read_text()) - # in the flake.nix file replace the string __CLAN_URL__ with the the clan flake - # provided by get_clan_flake_toplevel - flake_nix = flake / "flake.nix" - flake_nix.write_text( - flake_nix.read_text().replace("__NIXPKGS__", str(nixpkgs_source())) - ) - # check that an empty config is returned if no json file exists - monkeymodule.chdir(flake) - yield flake diff --git a/pkgs/clan-cli/tests/machine_flake.py b/pkgs/clan-cli/tests/machine_flake.py new file mode 100644 index 000000000..8660c58ef --- /dev/null +++ b/pkgs/clan-cli/tests/machine_flake.py @@ -0,0 +1,34 @@ +import shutil +import tempfile +from pathlib import Path +from typing import Generator + +import pytest + +from clan_cli.dirs import nixpkgs_source + + +@pytest.fixture(scope="module") +def monkeymodule() -> Generator[pytest.MonkeyPatch, None, None]: + with pytest.MonkeyPatch.context() as mp: + yield mp + + +@pytest.fixture(scope="module") +def machine_flake(monkeymodule: pytest.MonkeyPatch) -> Generator[Path, None, None]: + template = Path(__file__).parent / "machine_flake" + # copy the template to a new temporary location + with tempfile.TemporaryDirectory() as tmpdir_: + home = Path(tmpdir_) + flake = home / "machine_flake" + shutil.copytree(template, flake) + # in the flake.nix file replace the string __CLAN_URL__ with the the clan flake + # provided by get_clan_flake_toplevel + flake_nix = flake / "flake.nix" + flake_nix.write_text( + flake_nix.read_text().replace("__NIXPKGS__", str(nixpkgs_source())) + ) + # check that an empty config is returned if no json file exists + monkeymodule.chdir(flake) + monkeymodule.setenv("HOME", str(home)) + yield flake