Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/tests/storage_data.py
# Copyright (C) 2015-2020 The Software Heritage developers | # Copyright (C) 2015-2020 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 | 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.identifiers import parse_swhid | ||||
from swh.model.model import ( | from swh.model.model import ( | ||||
Content, | Content, | ||||
Directory, | |||||
DirectoryEntry, | |||||
MetadataAuthority, | MetadataAuthority, | ||||
MetadataAuthorityType, | MetadataAuthorityType, | ||||
MetadataFetcher, | MetadataFetcher, | ||||
MetadataTargetType, | MetadataTargetType, | ||||
RawExtrinsicMetadata, | RawExtrinsicMetadata, | ||||
SkippedContent, | SkippedContent, | ||||
) | ) | ||||
▲ Show 20 Lines • Show All 95 Lines • ▼ Show 20 Lines | skipped_content2 = SkippedContent( | ||||
blake2s256=hash_to_bytes( | blake2s256=hash_to_bytes( | ||||
"9ce18b1adecb33f891ca36664da676e12c772cc193778aac9a137b8dc5834b9b" | "9ce18b1adecb33f891ca36664da676e12c772cc193778aac9a137b8dc5834b9b" | ||||
), | ), | ||||
reason="Content too long", | reason="Content too long", | ||||
status="absent", | status="absent", | ||||
) | ) | ||||
dir = { | directory5 = Directory(entries=()) | ||||
"id": hash_to_bytes("34f335a750111ca0a8b64d8034faec9eedc396be"), | |||||
"entries": ( | |||||
{ | |||||
"name": b"foo", | |||||
"type": "file", | |||||
"target": content.sha1_git, | |||||
"perms": from_disk.DentryPerms.content, | |||||
}, | |||||
{ | |||||
"name": b"bar\xc3", | |||||
"type": "dir", | |||||
"target": b"12345678901234567890", | |||||
"perms": from_disk.DentryPerms.directory, | |||||
}, | |||||
), | |||||
} | |||||
dir2 = { | |||||
"id": hash_to_bytes("8505808532953da7d2581741f01b29c04b1cb9ab"), | |||||
"entries": ( | |||||
{ | |||||
"name": b"oof", | |||||
"type": "file", | |||||
"target": content2.sha1_git, | |||||
"perms": from_disk.DentryPerms.content, | |||||
}, | |||||
), | |||||
} | |||||
dir3 = { | |||||
"id": hash_to_bytes("4ea8c6b2f54445e5dd1a9d5bb2afd875d66f3150"), | |||||
"entries": ( | |||||
{ | |||||
"name": b"foo", | |||||
"type": "file", | |||||
"target": content.sha1_git, | |||||
"perms": from_disk.DentryPerms.content, | |||||
}, | |||||
{ | |||||
"name": b"subdir", | |||||
"type": "dir", | |||||
"target": hash_to_bytes("34f335a750111ca0a8b64d8034faec9eedc396be"), # dir | |||||
"perms": from_disk.DentryPerms.directory, | |||||
}, | |||||
{ | |||||
"name": b"hello", | |||||
"type": "file", | |||||
"target": b"12345678901234567890", | |||||
"perms": from_disk.DentryPerms.content, | |||||
}, | |||||
), | |||||
} | |||||
dir4 = { | directory = Directory( | ||||
"id": hash_to_bytes("377aa5fcd944fbabf502dbfda55cd14d33c8c3c6"), | id=hash_to_bytes("34f335a750111ca0a8b64d8034faec9eedc396be"), | ||||
"entries": ( | entries=tuple( | ||||
{ | [ | ||||
"name": b"subdir1", | DirectoryEntry( | ||||
"type": "dir", | name=b"foo", | ||||
"target": hash_to_bytes("4ea8c6b2f54445e5dd1a9d5bb2afd875d66f3150"), # dir3 | type="file", | ||||
"perms": from_disk.DentryPerms.directory, | target=content.sha1_git, | ||||
}, | perms=from_disk.DentryPerms.content, | ||||
), | |||||
DirectoryEntry( | |||||
name=b"bar\xc3", | |||||
type="dir", | |||||
target=directory5.id, | |||||
perms=from_disk.DentryPerms.directory, | |||||
), | |||||
], | |||||
), | |||||
) | |||||
directory2 = Directory( | |||||
id=hash_to_bytes("8505808532953da7d2581741f01b29c04b1cb9ab"), | |||||
entries=tuple( | |||||
[ | |||||
DirectoryEntry( | |||||
name=b"oof", | |||||
type="file", | |||||
target=content2.sha1_git, | |||||
perms=from_disk.DentryPerms.content, | |||||
) | |||||
], | |||||
), | |||||
) | |||||
directory3 = Directory( | |||||
id=hash_to_bytes("4ea8c6b2f54445e5dd1a9d5bb2afd875d66f3150"), | |||||
entries=tuple( | |||||
[ | |||||
DirectoryEntry( | |||||
name=b"foo", | |||||
type="file", | |||||
target=content.sha1_git, | |||||
perms=from_disk.DentryPerms.content, | |||||
), | |||||
DirectoryEntry( | |||||
name=b"subdir", | |||||
type="dir", | |||||
target=directory.id, | |||||
perms=from_disk.DentryPerms.directory, | |||||
), | |||||
DirectoryEntry( | |||||
name=b"hello", | |||||
type="file", | |||||
target=directory5.id, | |||||
perms=from_disk.DentryPerms.content, | |||||
), | |||||
], | |||||
), | |||||
) | |||||
directory4 = Directory( | |||||
id=hash_to_bytes("377aa5fcd944fbabf502dbfda55cd14d33c8c3c6"), | |||||
entries=tuple( | |||||
[ | |||||
DirectoryEntry( | |||||
name=b"subdir1", | |||||
type="dir", | |||||
target=directory3.id, | |||||
perms=from_disk.DentryPerms.directory, | |||||
) | |||||
], | |||||
), | ), | ||||
} | ) | ||||
directories = (dir, dir2, dir3, dir4) | |||||
minus_offset = datetime.timezone(datetime.timedelta(minutes=-120)) | minus_offset = datetime.timezone(datetime.timedelta(minutes=-120)) | ||||
plus_offset = datetime.timezone(datetime.timedelta(minutes=120)) | plus_offset = datetime.timezone(datetime.timedelta(minutes=120)) | ||||
revision = { | revision = { | ||||
"id": hash_to_bytes("066b1b62dbfa033362092af468bf6cfabec230e7"), | "id": hash_to_bytes("066b1b62dbfa033362092af468bf6cfabec230e7"), | ||||
"message": b"hello", | "message": b"hello", | ||||
"author": { | "author": { | ||||
▲ Show 20 Lines • Show All 331 Lines • ▼ Show 20 Lines | content_metadata3 = RawExtrinsicMetadata( | ||||
fetcher=attr.evolve(metadata_fetcher2, metadata=None), | fetcher=attr.evolve(metadata_fetcher2, metadata=None), | ||||
format="yaml", | format="yaml", | ||||
metadata=b"foo: bar", | metadata=b"foo: bar", | ||||
origin=origin["url"], | origin=origin["url"], | ||||
visit=42, | visit=42, | ||||
snapshot=parse_swhid(f"swh:1:snp:{hash_to_hex(snapshot['id'])}"), | snapshot=parse_swhid(f"swh:1:snp:{hash_to_hex(snapshot['id'])}"), | ||||
release=parse_swhid(f"swh:1:rel:{hash_to_hex(release['id'])}"), | release=parse_swhid(f"swh:1:rel:{hash_to_hex(release['id'])}"), | ||||
revision=parse_swhid(f"swh:1:rev:{hash_to_hex(revision['id'])}"), | revision=parse_swhid(f"swh:1:rev:{hash_to_hex(revision['id'])}"), | ||||
directory=parse_swhid(f"swh:1:dir:{hash_to_hex(dir['id'])}"), | directory=parse_swhid(f"swh:1:dir:{hash_to_hex(directory.id)}"), | ||||
path=b"/foo/bar", | path=b"/foo/bar", | ||||
) | ) | ||||
origin_metadata = RawExtrinsicMetadata( | origin_metadata = RawExtrinsicMetadata( | ||||
type=MetadataTargetType.ORIGIN, | type=MetadataTargetType.ORIGIN, | ||||
id=origin["url"], | id=origin["url"], | ||||
discovery_date=datetime.datetime( | discovery_date=datetime.datetime( | ||||
2015, 1, 1, 21, 0, 0, tzinfo=datetime.timezone.utc | 2015, 1, 1, 21, 0, 0, tzinfo=datetime.timezone.utc | ||||
Show All 28 Lines |