Files
lix/tests/functional2/flakes/test_inputs.py
T
eldritch horrors fedb4d5ead testing: migrate flakes/inputs.sh
Change-Id: I4446441cb7eea51a42f055f042cceb3e63b84b92
2026-02-18 11:32:33 +00:00

59 lines
1.7 KiB
Python

from testlib.fixtures.nix import Nix
from testlib.fixtures.git import Git
from testlib.fixtures.file_helper import with_files, File
from testlib.utils import get_global_asset_pack
from testlib.environ import environ
from pathlib import Path
from .common import simple_flake
import pytest
system = environ.get("system")
files = simple_flake() | {
"b-low": simple_flake()
| {
"flake.nix": File(f"""{{
outputs = inputs: rec {{
packages.{system} = rec {{
default =
assert builtins.readFile ./message == "all good\n";
assert builtins.readFile (inputs.self + "/message") == "all good\n";
import ./simple.nix;
}};
}};
}}"""),
"message": File("all good\n"),
}
}
@pytest.fixture(autouse=True)
def common_init(nix: Nix):
nix.settings.add_xp_feature("nix-command", "flakes")
@with_files(files)
def test_subdir_self_path(nix: Nix, files: Path):
assert "simple> PATH=" in nix.nix(["build", f"{files}/b-low", "--no-link"]).run().ok().stderr_s
@with_files({"repo": files | get_global_asset_pack(".git"), "client": {}})
def test_git_subdir_self_path(nix: Nix, files: Path, git: Git):
repo_dir = files / "repo"
git(repo_dir, "add", ".")
git(repo_dir, "commit", "-m", "init")
client_dir = files / "client"
(client_dir / "flake.nix").write_text(f"""{{
inputs.inp = {{
type = "git";
url = "file://{repo_dir}";
dir = "b-low";
}};
outputs = inputs: rec {{
packages = inputs.inp.packages;
}};
}}""")
assert "simple> PATH=" in nix.nix(["build", client_dir, "--no-link"]).run().ok().stderr_s