Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/tests/storage_tests.py
Show All 18 Lines | |||||
from swh.core.api import RemoteException | from swh.core.api import RemoteException | ||||
from swh.core.api.classes import stream_results | from swh.core.api.classes import stream_results | ||||
from swh.model import from_disk, hypothesis_strategies | from swh.model import from_disk, hypothesis_strategies | ||||
from swh.model.hashutil import DEFAULT_ALGORITHMS, hash_to_bytes | from swh.model.hashutil import DEFAULT_ALGORITHMS, hash_to_bytes | ||||
from swh.model.model import ( | from swh.model.model import ( | ||||
Content, | Content, | ||||
Directory, | Directory, | ||||
DirectoryEntry, | |||||
ExtID, | ExtID, | ||||
Origin, | Origin, | ||||
OriginVisit, | OriginVisit, | ||||
OriginVisitStatus, | OriginVisitStatus, | ||||
Person, | Person, | ||||
RawExtrinsicMetadata, | RawExtrinsicMetadata, | ||||
Revision, | Revision, | ||||
RevisionType, | RevisionType, | ||||
▲ Show 20 Lines • Show All 764 Lines • ▼ Show 20 Lines | def test_directory_add_twice(self, swh_storage, sample_data): | ||||
actual_result = swh_storage.directory_add([directory]) | actual_result = swh_storage.directory_add([directory]) | ||||
assert actual_result == {"directory:add": 0} | assert actual_result == {"directory:add": 0} | ||||
assert list(swh_storage.journal_writer.journal.objects) == [ | assert list(swh_storage.journal_writer.journal.objects) == [ | ||||
("directory", directory) | ("directory", directory) | ||||
] | ] | ||||
def test_directory_add_raw_manifest__different_entries( | |||||
self, swh_storage, check_ls=True | |||||
): | |||||
"""Add two directories with the same raw_manifest (and therefore, same id) | |||||
but different entries. | |||||
""" | |||||
dir1 = Directory( | |||||
entries=( | |||||
DirectoryEntry( | |||||
name=b"name1", type="file", target=b"\x00" * 20, perms=0o100000 | |||||
), | |||||
), | |||||
raw_manifest=b"abc", | |||||
) | |||||
dir2 = Directory( | |||||
entries=( | |||||
DirectoryEntry( | |||||
name=b"name2", type="file", target=b"\x00" * 20, perms=0o100000 | |||||
), | |||||
), | |||||
raw_manifest=b"abc", | |||||
) | |||||
assert dir1.id == dir2.id # because it is computed from the raw_manifest only | |||||
assert swh_storage.directory_add([dir1])["directory:add"] == 1 | |||||
ardumont: maybe mentions it's about different implementations (storage pg: 0, storage cass: 1 if i'm not… | |||||
assert swh_storage.directory_add([dir2])["directory:add"] in (0, 1) | |||||
if check_ls: | |||||
# This assertion is skipped when running from | |||||
# test_directory_add_raw_manifest__different_entries__allow_overwrite | |||||
assert [entry["name"] for entry in swh_storage.directory_ls(dir1.id)] == ( | |||||
[b"name1"] | |||||
) | |||||
# used in TestCassandraStorage by | |||||
# test_directory_add_raw_manifest__different_entries__allow_overwrite | |||||
return dir1.id | |||||
def test_directory_ls_recursive(self, swh_storage, sample_data): | def test_directory_ls_recursive(self, swh_storage, sample_data): | ||||
# create consistent dataset regarding the directories we want to list | # create consistent dataset regarding the directories we want to list | ||||
content, content2 = sample_data.contents[:2] | content, content2 = sample_data.contents[:2] | ||||
swh_storage.content_add([content, content2]) | swh_storage.content_add([content, content2]) | ||||
dir1, dir2, dir3 = sample_data.directories[:3] | dir1, dir2, dir3 = sample_data.directories[:3] | ||||
dir_ids = [d.id for d in [dir1, dir2, dir3]] | dir_ids = [d.id for d in [dir1, dir2, dir3]] | ||||
init_missing = list(swh_storage.directory_missing(dir_ids)) | init_missing = list(swh_storage.directory_missing(dir_ids)) | ||||
▲ Show 20 Lines • Show All 4,774 Lines • Show Last 20 Lines |
maybe mentions it's about different implementations (storage pg: 0, storage cass: 1 if i'm not wrong).