diff --git a/snapcraft/storeapi/errors.py b/snapcraft/storeapi/errors.py index 689cebd2e6..ca0ba60998 100644 --- a/snapcraft/storeapi/errors.py +++ b/snapcraft/storeapi/errors.py @@ -516,7 +516,7 @@ def __init__(self, snap_name, response, metadata): ( "Conflict in {!r} field:".format(field_name), " In snapcraft.yaml: {!r}".format(sent), - " In the Store: {!r}".format(error["message"]), + " In the Store: {!r}".format(error["extra"]["current"]), ) ) parts.append( diff --git a/tests/fake_servers/api.py b/tests/fake_servers/api.py index 16fa7055ac..1091fb7426 100644 --- a/tests/fake_servers/api.py +++ b/tests/fake_servers/api.py @@ -800,14 +800,19 @@ def snap_metadata(self, request): error_list = [] for name, value in request.json_body.items(): if name == "test-conflict-with-braces": - message = "value with {braces}" + conflict_value = "value with {braces}" else: - message = value + "-changed" + conflict_value = value + "-changed" error_list.append( { - "message": message, + "message": "Conflict on {}".format(name), "code": "conflict", - "extra": {"name": name}, + "extra": { + "name": name, + "field": name, + "current": conflict_value, + "value": value, + }, } ) payload = json.dumps({"error_list": error_list}).encode("utf8") @@ -856,9 +861,14 @@ def snap_binary_metadata(self, request): # POST, return error error_list = [ { - "message": "original-icon", + "message": "Conflict on icon", "code": "conflict", - "extra": {"name": "icon"}, + "extra": { + "name": "icon", + "field": "icon", + "current": "original-icon", + "value": "", + }, } ] payload = json.dumps({"error_list": error_list}).encode("utf8") @@ -867,9 +877,14 @@ def snap_binary_metadata(self, request): # POST, return error error_list = [ { - "message": "original icon with {braces}", + "message": "Conflict on icon", "code": "conflict", - "extra": {"name": "icon"}, + "extra": { + "name": "icon", + "field": "icon", + "current": "original icon with {braces}", + "value": "", + }, } ] payload = json.dumps({"error_list": error_list}).encode("utf8")