From 8902b784429ccb449383fb99d5d593e8f2e979fa Mon Sep 17 00:00:00 2001 From: rootile Date: Tue, 16 Jun 2026 19:55:19 +0200 Subject: [PATCH] tests: migrate derivation-json.sh Change-Id: I8a648231677bde28611dc9511e3a03d87608e7b4 --- tests/functional/derivation-json.sh | 12 --------- tests/functional/meson.build | 1 - tests/functional2/cli/test_derivation.py | 32 ++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 13 deletions(-) delete mode 100644 tests/functional/derivation-json.sh create mode 100644 tests/functional2/cli/test_derivation.py diff --git a/tests/functional/derivation-json.sh b/tests/functional/derivation-json.sh deleted file mode 100644 index b6be5d977..000000000 --- a/tests/functional/derivation-json.sh +++ /dev/null @@ -1,12 +0,0 @@ -source common.sh - -drvPath=$(nix-instantiate simple.nix) - -nix derivation show $drvPath | jq .[] > $TEST_HOME/simple.json - -drvPath2=$(nix derivation add < $TEST_HOME/simple.json) - -[[ "$drvPath" = "$drvPath2" ]] - -# Input addressed derivations cannot be renamed. -jq '.name = "foo"' < $TEST_HOME/simple.json | expectStderr 1 nix derivation add | grepQuiet "has incorrect output" diff --git a/tests/functional/meson.build b/tests/functional/meson.build index 6e926c6f2..d8fcb3311 100644 --- a/tests/functional/meson.build +++ b/tests/functional/meson.build @@ -86,7 +86,6 @@ functional_tests_scripts = [ 'nix-copy-ssh-ng.sh', 'pre-hook.sh', 'post-hook.sh', - 'derivation-json.sh', 'db-migration.sh', 'bash-profile.sh', 'flakes/show.sh', diff --git a/tests/functional2/cli/test_derivation.py b/tests/functional2/cli/test_derivation.py new file mode 100644 index 000000000..a873bf6de --- /dev/null +++ b/tests/functional2/cli/test_derivation.py @@ -0,0 +1,32 @@ +import json +from testlib.utils import get_global_asset_pack +from testlib.fixtures.file_helper import with_files +from testlib.fixtures.nix import Nix + + +@with_files(get_global_asset_pack("simple-drv")) +def test_add_json(nix: Nix): + drv_path = nix.nix_instantiate(["simple.nix"]).run().ok().stdout_plain + + drv_json = nix.nix(["derivation", "show", drv_path], flake=True).run().json() + drv_json = next(iter(drv_json.values())) + + drv_path2 = ( + nix.nix(["derivation", "add"], flake=True) + .with_stdin(json.dumps(drv_json).encode()) + .run() + .ok() + .stdout_plain + ) + + assert drv_path == drv_path2 + drv_json["name"] = "foo" + + res = ( + nix.nix(["derivation", "add"], flake=True) + .with_stdin(json.dumps(drv_json).encode()) + .run() + .expect(1) + ) + + assert "has incorrect output" in res.stderr_plain