diff --git a/PKG-INFO b/PKG-INFO index 3f04287e2c1bb13d17d1ec6385cde12aa43133bd..8230755c7c18dff8e532ec7e02cdc9b9dd90a599 100644 --- a/PKG-INFO +++ b/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: swh.model -Version: 2.1.0 +Version: 2.2.0 Summary: Software Heritage data model Home-page: https://forge.softwareheritage.org/diffusion/DMOD/ Author: Software Heritage developers diff --git a/swh.model.egg-info/PKG-INFO b/swh.model.egg-info/PKG-INFO index 3f04287e2c1bb13d17d1ec6385cde12aa43133bd..8230755c7c18dff8e532ec7e02cdc9b9dd90a599 100644 --- a/swh.model.egg-info/PKG-INFO +++ b/swh.model.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: swh.model -Version: 2.1.0 +Version: 2.2.0 Summary: Software Heritage data model Home-page: https://forge.softwareheritage.org/diffusion/DMOD/ Author: Software Heritage developers 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