diff --git a/swh/model/model.py b/swh/model/model.py index da0547186bc54cbeb30df7570e8bb1c3a44cb3f8..2030da8c1b615d2330472254cd4cb6a4d53e079a 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 bf9725c628c337b8d701ad73ee7b39dba25d060e..3c55b07cff38f6e750a2390fcff223e605bd2c18 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