Files
lix/tests/functional2/build/test_structured_attrs.py
T
rootile 2ea51a6c71 tests: migrate structured-attrs.sh
Change-Id: I6d2b82e3aa236d01b9a345c148b7fef3703a446d
2026-06-14 20:19:58 +02:00

38 lines
1.0 KiB
Python

from pathlib import Path
from testlib.fixtures.file_helper import CopyFile
from testlib.fixtures.file_helper import with_files
from testlib.utils import get_global_asset
from testlib.fixtures.nix import Nix
evil_drv = """
builtins.derivation {
name = "foo";
builder = "/bin/sh";
system = builtins.currentSystem;
__structuredAttrs = true;
__json.hello = "1";
env.hello = "2";
}
"""
def test_improper_structured_attrs_drv(nix: Nix):
result = nix.nix_build(["--expr", evil_drv]).run().expect(1)
assert "a `__json` attribute cannot be passed" in result.stderr_s
@with_files(
{
"structured-attrs.nix": CopyFile("assets/structured-attrs.nix"),
"config.nix": get_global_asset("config.nix"),
}
)
def test_proper_structured_attrs(nix: Nix, files: Path):
result = files / "result"
nix.nix_build(["structured-attrs.nix", "-A", "all", "-o", result]).run().ok()
assert (result / "foo").read_text() == "bar\n"
assert (files / "result-dev" / "foo").read_text() == "foo\n"