Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/tests/storage_data.py
# Copyright (C) 2015-2019 The Software Heritage developers | # Copyright (C) 2015-2019 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU General Public License version 3, or any later version | # License: GNU General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
import datetime | import datetime | ||||
import attr | |||||
from swh.model.hashutil import hash_to_bytes, hash_to_hex | from swh.model.hashutil import hash_to_bytes, hash_to_hex | ||||
from swh.model import from_disk | from swh.model import from_disk | ||||
from swh.model.identifiers import parse_swhid | |||||
from swh.model.model import ( | |||||
MetadataAuthority, | |||||
MetadataAuthorityType, | |||||
MetadataFetcher, | |||||
RawExtrinsicMetadata, | |||||
MetadataTargetType, | |||||
) | |||||
class StorageData: | class StorageData: | ||||
def __getattr__(self, key): | def __getattr__(self, key): | ||||
try: | try: | ||||
v = globals()[key] | v = globals()[key] | ||||
except KeyError as e: | except KeyError as e: | ||||
raise AttributeError(e.args[0]) | raise AttributeError(e.args[0]) | ||||
▲ Show 20 Lines • Show All 313 Lines • ▼ Show 20 Lines | |||||
origin2 = { | origin2 = { | ||||
"url": "file:///dev/zero", | "url": "file:///dev/zero", | ||||
} | } | ||||
origins = (origin, origin2) | origins = (origin, origin2) | ||||
metadata_authority = { | metadata_authority = MetadataAuthority( | ||||
"type": "deposit", | type=MetadataAuthorityType.DEPOSIT, | ||||
"url": "http://hal.inria.example.com/", | url="http://hal.inria.example.com/", | ||||
"metadata": {"location": "France"}, | metadata={"location": "France"}, | ||||
} | ) | ||||
metadata_authority2 = { | metadata_authority2 = MetadataAuthority( | ||||
"type": "registry", | type=MetadataAuthorityType.REGISTRY, | ||||
"url": "http://wikidata.example.com/", | url="http://wikidata.example.com/", | ||||
"metadata": {}, | metadata={}, | ||||
} | ) | ||||
metadata_fetcher = { | metadata_fetcher = MetadataFetcher( | ||||
"name": "swh-deposit", | name="swh-deposit", version="0.0.1", metadata={"sword_version": "2"}, | ||||
"version": "0.0.1", | ) | ||||
"metadata": {"sword_version": "2"}, | metadata_fetcher2 = MetadataFetcher(name="swh-example", version="0.0.1", metadata={},) | ||||
} | |||||
metadata_fetcher2 = { | |||||
"name": "swh-example", | |||||
"version": "0.0.1", | |||||
"metadata": {}, | |||||
} | |||||
date_visit1 = datetime.datetime(2015, 1, 1, 23, 0, 0, tzinfo=datetime.timezone.utc) | date_visit1 = datetime.datetime(2015, 1, 1, 23, 0, 0, tzinfo=datetime.timezone.utc) | ||||
type_visit1 = "git" | type_visit1 = "git" | ||||
date_visit2 = datetime.datetime(2017, 1, 1, 23, 0, 0, tzinfo=datetime.timezone.utc) | date_visit2 = datetime.datetime(2017, 1, 1, 23, 0, 0, tzinfo=datetime.timezone.utc) | ||||
type_visit2 = "hg" | type_visit2 = "hg" | ||||
date_visit3 = datetime.datetime(2018, 1, 1, 23, 0, 0, tzinfo=datetime.timezone.utc) | date_visit3 = datetime.datetime(2018, 1, 1, 23, 0, 0, tzinfo=datetime.timezone.utc) | ||||
▲ Show 20 Lines • Show All 126 Lines • ▼ Show 20 Lines | "branches": { | ||||
"target_type": "snapshot", | "target_type": "snapshot", | ||||
}, | }, | ||||
b"dangling": None, | b"dangling": None, | ||||
}, | }, | ||||
} | } | ||||
snapshots = (snapshot, empty_snapshot, complete_snapshot) | snapshots = (snapshot, empty_snapshot, complete_snapshot) | ||||
content_metadata = { | content_metadata = RawExtrinsicMetadata( | ||||
"id": f"swh:1:cnt:{cont['sha1_git']}", | type=MetadataTargetType.CONTENT, | ||||
"context": {"origin": origin["url"]}, | id=parse_swhid(f"swh:1:cnt:{hash_to_hex(cont['sha1_git'])}"), | ||||
"discovery_date": datetime.datetime( | origin=origin["url"], | ||||
discovery_date=datetime.datetime( | |||||
2015, 1, 1, 21, 0, 0, tzinfo=datetime.timezone.utc | 2015, 1, 1, 21, 0, 0, tzinfo=datetime.timezone.utc | ||||
), | ), | ||||
"authority": { | authority=attr.evolve(metadata_authority, metadata=None), | ||||
"type": metadata_authority["type"], | fetcher=attr.evolve(metadata_fetcher, metadata=None), | ||||
"url": metadata_authority["url"], | format="json", | ||||
}, | metadata=b'{"foo": "bar"}', | ||||
"fetcher": { | ) | ||||
"name": metadata_fetcher["name"], | content_metadata2 = RawExtrinsicMetadata( | ||||
"version": metadata_fetcher["version"], | type=MetadataTargetType.CONTENT, | ||||
}, | id=parse_swhid(f"swh:1:cnt:{hash_to_hex(cont['sha1_git'])}"), | ||||
"format": "json", | origin=origin2["url"], | ||||
"metadata": b'{"foo": "bar"}', | discovery_date=datetime.datetime( | ||||
} | |||||
content_metadata2 = { | |||||
"id": f"swh:1:cnt:{cont['sha1_git']}", | |||||
"context": {"origin": origin2["url"]}, | |||||
"discovery_date": datetime.datetime( | |||||
2017, 1, 1, 22, 0, 0, tzinfo=datetime.timezone.utc | 2017, 1, 1, 22, 0, 0, tzinfo=datetime.timezone.utc | ||||
), | ), | ||||
"authority": { | authority=attr.evolve(metadata_authority, metadata=None), | ||||
"type": metadata_authority["type"], | fetcher=attr.evolve(metadata_fetcher, metadata=None), | ||||
"url": metadata_authority["url"], | format="yaml", | ||||
}, | metadata=b"foo: bar", | ||||
"fetcher": { | ) | ||||
"name": metadata_fetcher["name"], | content_metadata3 = RawExtrinsicMetadata( | ||||
"version": metadata_fetcher["version"], | type=MetadataTargetType.CONTENT, | ||||
}, | id=parse_swhid(f"swh:1:cnt:{hash_to_hex(cont['sha1_git'])}"), | ||||
"format": "yaml", | discovery_date=datetime.datetime( | ||||
"metadata": b"foo: bar", | |||||
} | |||||
content_metadata3 = { | |||||
"id": f"swh:1:cnt:{cont['sha1_git']}", | |||||
"context": { | |||||
"origin": origin["url"], | |||||
"visit": 42, | |||||
"snapshot": f"swh:1:snp:{hash_to_hex(snapshot['id'])}", | |||||
"release": f"swh:1:rel:{hash_to_hex(release['id'])}", | |||||
"revision": f"swh:1:rev:{hash_to_hex(revision['id'])}", | |||||
"directory": f"swh:1:dir:{hash_to_hex(dir['id'])}", | |||||
"path": b"/foo/bar", | |||||
}, | |||||
"discovery_date": datetime.datetime( | |||||
2017, 1, 1, 22, 0, 0, tzinfo=datetime.timezone.utc | 2017, 1, 1, 22, 0, 0, tzinfo=datetime.timezone.utc | ||||
), | ), | ||||
"authority": { | authority=attr.evolve(metadata_authority2, metadata=None), | ||||
"type": metadata_authority2["type"], | fetcher=attr.evolve(metadata_fetcher2, metadata=None), | ||||
"url": metadata_authority2["url"], | format="yaml", | ||||
}, | metadata=b"foo: bar", | ||||
"fetcher": { | origin=origin["url"], | ||||
"name": metadata_fetcher2["name"], | visit=42, | ||||
"version": metadata_fetcher2["version"], | snapshot=parse_swhid(f"swh:1:snp:{hash_to_hex(snapshot['id'])}"), | ||||
}, | release=parse_swhid(f"swh:1:rel:{hash_to_hex(release['id'])}"), | ||||
"format": "yaml", | revision=parse_swhid(f"swh:1:rev:{hash_to_hex(revision['id'])}"), | ||||
"metadata": b"foo: bar", | directory=parse_swhid(f"swh:1:dir:{hash_to_hex(dir['id'])}"), | ||||
} | path=b"/foo/bar", | ||||
) | |||||
origin_metadata = { | |||||
"origin_url": origin["url"], | origin_metadata = RawExtrinsicMetadata( | ||||
"discovery_date": datetime.datetime( | type=MetadataTargetType.ORIGIN, | ||||
id=origin["url"], | |||||
discovery_date=datetime.datetime( | |||||
2015, 1, 1, 21, 0, 0, tzinfo=datetime.timezone.utc | 2015, 1, 1, 21, 0, 0, tzinfo=datetime.timezone.utc | ||||
), | ), | ||||
"authority": { | authority=attr.evolve(metadata_authority, metadata=None), | ||||
"type": metadata_authority["type"], | fetcher=attr.evolve(metadata_fetcher, metadata=None), | ||||
"url": metadata_authority["url"], | format="json", | ||||
}, | metadata=b'{"foo": "bar"}', | ||||
"fetcher": { | ) | ||||
"name": metadata_fetcher["name"], | origin_metadata2 = RawExtrinsicMetadata( | ||||
"version": metadata_fetcher["version"], | type=MetadataTargetType.ORIGIN, | ||||
}, | id=origin["url"], | ||||
"format": "json", | discovery_date=datetime.datetime( | ||||
"metadata": b'{"foo": "bar"}', | |||||
} | |||||
origin_metadata2 = { | |||||
"origin_url": origin["url"], | |||||
"discovery_date": datetime.datetime( | |||||
2017, 1, 1, 22, 0, 0, tzinfo=datetime.timezone.utc | 2017, 1, 1, 22, 0, 0, tzinfo=datetime.timezone.utc | ||||
), | ), | ||||
"authority": { | authority=attr.evolve(metadata_authority, metadata=None), | ||||
"type": metadata_authority["type"], | fetcher=attr.evolve(metadata_fetcher, metadata=None), | ||||
"url": metadata_authority["url"], | format="yaml", | ||||
}, | metadata=b"foo: bar", | ||||
"fetcher": { | ) | ||||
"name": metadata_fetcher["name"], | origin_metadata3 = RawExtrinsicMetadata( | ||||
"version": metadata_fetcher["version"], | type=MetadataTargetType.ORIGIN, | ||||
}, | id=origin["url"], | ||||
"format": "yaml", | discovery_date=datetime.datetime( | ||||
"metadata": b"foo: bar", | |||||
} | |||||
origin_metadata3 = { | |||||
"origin_url": origin["url"], | |||||
"discovery_date": datetime.datetime( | |||||
2017, 1, 1, 22, 0, 0, tzinfo=datetime.timezone.utc | 2017, 1, 1, 22, 0, 0, tzinfo=datetime.timezone.utc | ||||
), | ), | ||||
"authority": { | authority=attr.evolve(metadata_authority2, metadata=None), | ||||
"type": metadata_authority2["type"], | fetcher=attr.evolve(metadata_fetcher2, metadata=None), | ||||
"url": metadata_authority2["url"], | format="yaml", | ||||
}, | metadata=b"foo: bar", | ||||
"fetcher": { | ) | ||||
"name": metadata_fetcher2["name"], | |||||
"version": metadata_fetcher2["version"], | |||||
}, | |||||
"format": "yaml", | |||||
"metadata": b"foo: bar", | |||||
} | |||||
person = { | person = { | ||||
"name": b"John Doe", | "name": b"John Doe", | ||||
"email": b"john.doe@institute.org", | "email": b"john.doe@institute.org", | ||||
"fullname": b"John Doe <john.doe@institute.org>", | "fullname": b"John Doe <john.doe@institute.org>", | ||||
} | } | ||||
objects = { | objects = { | ||||
"content": contents, | "content": contents, | ||||
"skipped_content": skipped_contents, | "skipped_content": skipped_contents, | ||||
"directory": directories, | "directory": directories, | ||||
"revision": revisions, | "revision": revisions, | ||||
"origin": origins, | "origin": origins, | ||||
"release": releases, | "release": releases, | ||||
"snapshot": snapshots, | "snapshot": snapshots, | ||||
} | } |