From c3d9439872ba4980ec235d8a49beb7c09b451352 Mon Sep 17 00:00:00 2001 From: "Antoine R. Dumont (@ardumont)" <antoine.romain.dumont@gmail.com> Date: Thu, 24 Mar 2016 10:36:21 +0100 Subject: [PATCH] 'metadata' entry is expected to be json serializable so no bytes, and we enforce during the checksum computation function --- swh/model/identifiers.py | 5 ++++- swh/model/tests/test_identifiers.py | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/swh/model/identifiers.py b/swh/model/identifiers.py index 7671ce3b..61b838ab 100644 --- a/swh/model/identifiers.py +++ b/swh/model/identifiers.py @@ -266,7 +266,10 @@ def revision_identifier(revision): metadata = revision.get('metadata', {}) if 'gpgsig' in metadata: - components.extend([b'gpgsig', b' ', metadata['gpgsig'], b'\n']) + gpgsig = metadata['gpgsig'] + if isinstance(gpgsig, str): + gpgsig = gpgsig.encode('utf-8') + components.extend([b'gpgsig', b' ', gpgsig, b'\n']) if 'extra_headers' in metadata: headers = metadata['extra_headers'] diff --git a/swh/model/tests/test_identifiers.py b/swh/model/tests/test_identifiers.py index c1e6201a..c8a66f90 100644 --- a/swh/model/tests/test_identifiers.py +++ b/swh/model/tests/test_identifiers.py @@ -318,7 +318,7 @@ class RevisionIdentifier(unittest.TestCase): 'offset': 480, }, 'metadata': { - 'gpgsig': b'''-----BEGIN PGP SIGNATURE----- + 'gpgsig': '''-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.13 (Darwin)\n \n iQIcBAABAgAGBQJVJcYsAAoJEBiY3kIkQRNJVAUQAJ8/XQIfMqqC5oYeEFfHOPYZ L7qy46bXHVBa9Qd8zAJ2Dou3IbI2ZoF6/Et89K/UggOycMlt5FKV/9toWyuZv4Po L682wonoxX99qvVTHo6+wtnmYO7+G0f82h+qHMErxjP+I6gzRNBvRr+SfY7VlGdK -- GitLab