From 975e9892b6ece655a25acc4ad07df61bd610ac90 Mon Sep 17 00:00:00 2001 From: Valentin Lorentz <vlorentz@softwareheritage.org> Date: Fri, 12 Mar 2021 13:57:55 +0100 Subject: [PATCH] model: Add a swhid() method to RawExtrinsicMetadata. All other hashable objects but ExtId have one. It will be used by swh-deposit. --- swh/model/model.py | 7 +++++++ swh/model/tests/test_model.py | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/swh/model/model.py b/swh/model/model.py index da054718..2030da8c 100644 --- a/swh/model/model.py +++ b/swh/model/model.py @@ -1098,6 +1098,13 @@ class RawExtrinsicMetadata(HashableObject, BaseModel): return super().from_dict(d) + def swhid(self) -> ExtendedSWHID: + """Returns a SWHID representing this RawExtrinsicMetadata object.""" + return ExtendedSWHID( + object_type=SwhidExtendedObjectType.RAW_EXTRINSIC_METADATA, + object_id=self.id, + ) + @attr.s(frozen=True, slots=True) class ExtID(HashableObject, BaseModel): diff --git a/swh/model/tests/test_model.py b/swh/model/tests/test_model.py index bf9725c6..3c55b07c 100644 --- a/swh/model/tests/test_model.py +++ b/swh/model/tests/test_model.py @@ -21,6 +21,7 @@ from swh.model.identifiers import ( content_identifier, directory_identifier, origin_identifier, + raw_extrinsic_metadata_identifier, release_identifier, revision_identifier, snapshot_identifier, @@ -802,6 +803,14 @@ def test_origin_model_id_computation(): assert str(ori_model.swhid()) == "swh:1:ori:" + ori_id_str +def test_raw_extrinsic_metadata_model_id_computation(): + emd_dict = metadata_example.copy() + + emd_id_str = raw_extrinsic_metadata_identifier(emd_dict) + emd_model = RawExtrinsicMetadata.from_dict(emd_dict) + assert str(emd_model.swhid()) == "swh:1:emd:" + emd_id_str + + @given(strategies.objects(split_content=True)) def test_object_type(objtype_and_obj): obj_type, obj = objtype_and_obj -- GitLab