1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-19 08:49:35 +01:00

tests: fix fetchers-substitute test for new narHash JSON format

The test was failing because nix path-info --json now returns narHash as
a structured dictionary {"algorithm": "sha256", "format": "base64",
"hash": "..."} instead of an SRI string "sha256-...".

This change was introduced in commit 5e7ee808d. The functional test
path-info.sh was updated at that time, but this NixOS test was missed.

The fix converts the dictionary format to SRI format inline:
  tarball_hash_sri = f"{narHash_obj['algorithm']}-{narHash_obj['hash']}"
This commit is contained in:
Bernardo Meurer Costa 2025-11-18 16:35:47 +00:00
parent 68d2292f3a
commit 53af1119fb
No known key found for this signature in database

View file

@ -120,7 +120,9 @@
path_info_json = substituter.succeed(f"nix path-info --json {tarball_store_path}").strip() path_info_json = substituter.succeed(f"nix path-info --json {tarball_store_path}").strip()
path_info_dict = json.loads(path_info_json) path_info_dict = json.loads(path_info_json)
# nix path-info returns a dict with store paths as keys # nix path-info returns a dict with store paths as keys
tarball_hash_sri = path_info_dict[tarball_store_path]["narHash"] narHash_obj = path_info_dict[tarball_store_path]["narHash"]
# Convert from structured format {"algorithm": "sha256", "format": "base64", "hash": "..."} to SRI string
tarball_hash_sri = f"{narHash_obj['algorithm']}-{narHash_obj['hash']}"
print(f"Tarball NAR hash (SRI): {tarball_hash_sri}") print(f"Tarball NAR hash (SRI): {tarball_hash_sri}")
# Also get the old format hash for fetchTarball (which uses sha256 parameter) # Also get the old format hash for fetchTarball (which uses sha256 parameter)