From 0547a516e6b1d197c8a748b8b4d1fb4bacf3ab79 Mon Sep 17 00:00:00 2001 From: Antoine Lambert <antoine.lambert@inria.fr> Date: Wed, 8 Jul 2020 16:18:40 +0200 Subject: [PATCH] identifiers: Add to_dict method to SWHID class --- swh/model/identifiers.py | 5 ++++- swh/model/tests/test_identifiers.py | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/swh/model/identifiers.py b/swh/model/identifiers.py index 372bc7c5..e1cf0dfe 100644 --- a/swh/model/identifiers.py +++ b/swh/model/identifiers.py @@ -723,6 +723,9 @@ class SWHID: def check_object_id(self, attribute, value): validate_sha1(value) # can raise if invalid hash + def to_dict(self) -> Dict[str, Any]: + return attr.asdict(self) + def __str__(self) -> str: o = _object_type_map.get(self.object_type) assert o @@ -856,4 +859,4 @@ def parse_persistent_identifier(persistent_id: str) -> PersistentId: .. deprecated:: 0.3.8 Use :func:`swh.model.identifiers.parse_swhid` instead """ - return PersistentId(**attr.asdict(parse_swhid(persistent_id))) + return PersistentId(**parse_swhid(persistent_id).to_dict()) diff --git a/swh/model/tests/test_identifiers.py b/swh/model/tests/test_identifiers.py index c03b9eff..5acbd2d3 100644 --- a/swh/model/tests/test_identifiers.py +++ b/swh/model/tests/test_identifiers.py @@ -915,6 +915,16 @@ class SnapshotIdentifier(unittest.TestCase): ) actual_result = identifiers.parse_swhid(swhid) self.assertEqual(actual_result, expected_result) + self.assertEqual( + expected_result.to_dict(), + { + "namespace": "swh", + "scheme_version": _version, + "object_type": _type, + "object_id": _hash, + "metadata": _metadata, + }, + ) def test_parse_swhid_parsing_error(self): for swhid in [ -- GitLab