54 lines
1.4 KiB
Python
54 lines
1.4 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 pathlib import Path
|
|
|
|
|
|
@with_files(
|
|
{
|
|
"flake1": get_global_asset_pack(".git")
|
|
| {
|
|
"flake.nix": File("""{
|
|
outputs = { self }: { x = import ./x.nix; };
|
|
}"""),
|
|
"x.nix": File("123"),
|
|
},
|
|
"flake2": get_global_asset_pack(".git")
|
|
| {
|
|
"flake.nix": File("""{
|
|
outputs = { self, flake1 }: { x = flake1.x; };
|
|
}""")
|
|
},
|
|
}
|
|
)
|
|
def test_unlocked_override(nix: Nix, files: Path, git: Git):
|
|
nix.settings.add_xp_feature("nix-command", "flakes")
|
|
|
|
git(files / "flake1", "add", "flake.nix", "x.nix")
|
|
git(files / "flake1", "commit", "-m", "Initial")
|
|
|
|
git(files / "flake2", "add", "flake.nix")
|
|
|
|
assert (
|
|
nix.nix(
|
|
["eval", "--json", f"{files}/flake2#x", "--override-input", "flake1", files / "flake1"]
|
|
)
|
|
.run()
|
|
.ok()
|
|
.stdout_s
|
|
== "123\n"
|
|
)
|
|
|
|
(files / "flake1/x.nix").write_text("456")
|
|
|
|
assert (
|
|
nix.nix(
|
|
["eval", "--json", f"{files}/flake2#x", "--override-input", "flake1", files / "flake1"]
|
|
)
|
|
.run()
|
|
.ok()
|
|
.stdout_s
|
|
== "456\n"
|
|
)
|