Page MenuHomeSoftware Heritage

D3654.id.diff
No OneTemporary

D3654.id.diff

diff --git a/swh/journal/serializers.py b/swh/journal/serializers.py
--- a/swh/journal/serializers.py
+++ b/swh/journal/serializers.py
@@ -12,9 +12,12 @@
from swh.model.model import (
Content,
Directory,
+ MetadataAuthority,
+ MetadataFetcher,
Origin,
OriginVisit,
OriginVisitStatus,
+ RawExtrinsicMetadata,
Release,
Revision,
SkippedContent,
@@ -24,9 +27,12 @@
ModelObject = Union[
Content,
Directory,
+ MetadataAuthority,
+ MetadataFetcher,
Origin,
OriginVisit,
OriginVisitStatus,
+ RawExtrinsicMetadata,
Release,
Revision,
SkippedContent,
@@ -54,7 +60,14 @@
@overload
def object_key(
- object_type: str, object_: Union[OriginVisit, OriginVisitStatus]
+ object_type: str,
+ object_: Union[
+ MetadataAuthority,
+ MetadataFetcher,
+ OriginVisit,
+ OriginVisitStatus,
+ RawExtrinsicMetadata,
+ ],
) -> Dict[str, str]:
...
@@ -79,6 +92,26 @@
"visit": str(object_.visit),
"date": str(object_.date),
}
+ elif object_type == "metadata_authority":
+ return {
+ "type": object_.type.value,
+ "url": object_.url,
+ }
+ elif object_type == "metadata_fetcher":
+ return {
+ "name": object_.name,
+ "version": object_.version,
+ }
+ elif object_type == "raw_extrinsic_metadata":
+ return {
+ "type": object_.type.value,
+ "id": str(object_.id),
+ "authority_type": object_.authority.type.value,
+ "authority_url": object_.authority.url,
+ "discovery_date": str(object_.discovery_date),
+ "fetcher_name": object_.fetcher.name,
+ "fetcher_version": object_.fetcher.version,
+ }
else:
raise ValueError("Unknown object type: %s." % object_type)
diff --git a/swh/journal/tests/journal_data.py b/swh/journal/tests/journal_data.py
--- a/swh/journal/tests/journal_data.py
+++ b/swh/journal/tests/journal_data.py
@@ -9,18 +9,24 @@
import attr
-from swh.model.hashutil import MultiHash, hash_to_bytes
+from swh.model.hashutil import MultiHash, hash_to_bytes, hash_to_hex
from swh.journal.serializers import ModelObject
+from swh.model.identifiers import SWHID
from swh.model.model import (
Content,
Directory,
DirectoryEntry,
+ MetadataAuthority,
+ MetadataAuthorityType,
+ MetadataFetcher,
+ MetadataTargetType,
ObjectType,
Origin,
OriginVisit,
OriginVisitStatus,
Person,
+ RawExtrinsicMetadata,
Release,
Revision,
RevisionType,
@@ -288,12 +294,47 @@
]
+METADATA_AUTHORITIES = [
+ MetadataAuthority(
+ type=MetadataAuthorityType.FORGE, url="http://example.org/", metadata={},
+ ),
+]
+
+METADATA_FETCHERS = [
+ MetadataFetcher(name="test-fetcher", version="1.0.0", metadata={},)
+]
+
+RAW_EXTRINSIC_METADATA = [
+ RawExtrinsicMetadata(
+ type=MetadataTargetType.ORIGIN,
+ id="http://example.org/foo.git",
+ discovery_date=datetime.datetime(2020, 7, 30, 17, 8, 20, tzinfo=UTC),
+ authority=attr.evolve(METADATA_AUTHORITIES[0], metadata=None),
+ fetcher=attr.evolve(METADATA_FETCHERS[0], metadata=None),
+ format="json",
+ metadata=b'{"foo": "bar"}',
+ ),
+ RawExtrinsicMetadata(
+ type=MetadataTargetType.CONTENT,
+ id=SWHID(object_type="content", object_id=hash_to_hex(CONTENTS[0].sha1_git)),
+ discovery_date=datetime.datetime(2020, 7, 30, 17, 8, 20, tzinfo=UTC),
+ authority=attr.evolve(METADATA_AUTHORITIES[0], metadata=None),
+ fetcher=attr.evolve(METADATA_FETCHERS[0], metadata=None),
+ format="json",
+ metadata=b'{"foo": "bar"}',
+ ),
+]
+
+
TEST_OBJECTS: Dict[str, Sequence[ModelObject]] = {
"content": CONTENTS,
"directory": DIRECTORIES,
+ "metadata_authority": METADATA_AUTHORITIES,
+ "metadata_fetcher": METADATA_FETCHERS,
"origin": ORIGINS,
"origin_visit": ORIGIN_VISITS,
"origin_visit_status": ORIGIN_VISIT_STATUSES,
+ "raw_extrinsic_metadata": RAW_EXTRINSIC_METADATA,
"release": RELEASES,
"revision": REVISIONS,
"snapshot": SNAPSHOTS,
diff --git a/swh/journal/tests/test_pytest_plugin.py b/swh/journal/tests/test_pytest_plugin.py
--- a/swh/journal/tests/test_pytest_plugin.py
+++ b/swh/journal/tests/test_pytest_plugin.py
@@ -54,9 +54,12 @@
"object_types": {
"content",
"directory",
+ "metadata_authority",
+ "metadata_fetcher",
"origin",
"origin_visit",
"origin_visit_status",
+ "raw_extrinsic_metadata",
"release",
"revision",
"snapshot",

File Metadata

Mime Type
text/plain
Expires
Thu, Jul 3, 3:33 PM (1 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3217642

Event Timeline