diff --git a/asu/util.py b/asu/util.py index be1037d3..17ddbb8b 100644 --- a/asu/util.py +++ b/asu/util.py @@ -141,7 +141,9 @@ def get_request_hash(build_request: BuildRequest) -> str: build_request.version_code, build_request.target, build_request.profile.replace(",", "_"), - get_packages_hash(build_request.packages), + get_packages_hash( + build_request.packages_versions.keys() or build_request.packages + ), get_manifest_hash(build_request.packages_versions), str(build_request.diff_packages), "", # build_request.filesystem @@ -166,7 +168,19 @@ def get_packages_hash(packages: list[str]) -> str: Returns: str: hash of `req` """ - return get_str_hash(" ".join(sorted(list(set(packages))))) + return get_str_hash( + " ".join( + sorted( + list( + set( + get_packages_hash( + x.removeprefix("+") for x in (build_request.packages) + ), + ) + ) + ) + ) + ) def fingerprint_pubkey_usign(pubkey: str) -> str: diff --git a/tests/test_api.py b/tests/test_api.py index b9746e30..9e994d58 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -178,8 +178,8 @@ def test_api_build_request_hash(client): profile="testprofile", ) - case12hash = "8d8e0aa2fd95bb75dba4aff4279dd6f976a40ad17300927d54b8a9a9b0576306" - case34hash = "6b1645013216da39ee09deae75b87b0636f3c50648b037750b0a80448ce5c7ca" + case12hash = "000315ebb40566079ad33725b46ac857a57c8fa24aba56728fa4209955e4a5e2" + case34hash = "551a84817b4d2c094666bc7309bf502f6df830a8d2bfa84a48c2bec4ab92f968" # Case 1 - diff_packages=True, first package ordering json["diff_packages"] = True @@ -683,7 +683,7 @@ def test_api_build_defaults_filled_allowed(app): data = response.json() assert ( data["request_hash"] - == "9c8d0cd7d9ec208a233b954edb20c3c20b5c11103bb7f5f1ebface565f8c6720" + == "c4d60f93797308a12e81b65b8c53864f2318442a0dbbadc52233a9861e2565f6" ) diff --git a/tests/test_util.py b/tests/test_util.py index c7647dce..e260a463 100644 --- a/tests/test_util.py +++ b/tests/test_util.py @@ -67,7 +67,7 @@ def test_get_request_hash(): assert ( get_request_hash(request) - == "99ff721439cd696f7da259541a07d7bfc7eb6c45a844db532e0384b464e23f46" + == "f43f92cde2bd49cfb1d8b606d8c791d3e68823eeb6040ef6c1e0a5d4ffa99069" )