Changeset View
Changeset View
Standalone View
Standalone View
swh/vault/tests/test_cookers.py
Show First 20 Lines • Show All 966 Lines • ▼ Show 20 Lines | def test_revision_filtered_objects(self, git_loader, cook_extract_revision): | ||||
with cook_extract_revision(loader.storage, swhid) as (ert, p): | with cook_extract_revision(loader.storage, swhid) as (ert, p): | ||||
self.check_revision_filtered_objects(ert, p, swhid) | self.check_revision_filtered_objects(ert, p, swhid) | ||||
def test_revision_null_fields(self, git_loader, cook_extract_revision): | def test_revision_null_fields(self, git_loader, cook_extract_revision): | ||||
(loader, swhid) = self.load_repo_null_fields(git_loader) | (loader, swhid) = self.load_repo_null_fields(git_loader) | ||||
with cook_extract_revision(loader.storage, swhid, fsck=False) as (ert, p): | with cook_extract_revision(loader.storage, swhid, fsck=False) as (ert, p): | ||||
self.check_revision_null_fields(ert, p, swhid) | self.check_revision_null_fields(ert, p, swhid) | ||||
def test_revision_revision_data(self, swh_storage): | def test_revision_submodule(self, swh_storage, cook_extract_revision): | ||||
target_rev = "0e8a3ad980ec179856012b7eecf4327e99cd44cd" | target_rev = "0e8a3ad980ec179856012b7eecf4327e99cd44cd" | ||||
date = TimestampWithTimezone.from_datetime( | |||||
datetime.datetime.now(datetime.timezone.utc).replace(microsecond=0) | |||||
) | |||||
dir = Directory( | dir = Directory( | ||||
entries=( | entries=( | ||||
DirectoryEntry( | DirectoryEntry( | ||||
name=b"submodule", | name=b"submodule", | ||||
type="rev", | type="rev", | ||||
target=hashutil.hash_to_bytes(target_rev), | target=hashutil.hash_to_bytes(target_rev), | ||||
perms=0o100644, | perms=0o160000, | ||||
), | ), | ||||
), | ), | ||||
) | ) | ||||
swh_storage.directory_add([dir]) | swh_storage.directory_add([dir]) | ||||
rev = Revision( | rev = Revision( | ||||
message=b"", | message=b"msg", | ||||
author=Person(name=None, email=None, fullname=b""), | author=Person.from_fullname(b"me <test@example.org>"), | ||||
date=None, | date=date, | ||||
committer=Person(name=None, email=None, fullname=b""), | committer=Person.from_fullname(b"me <test@example.org>"), | ||||
committer_date=None, | committer_date=date, | ||||
parents=(), | parents=(), | ||||
type=RevisionType.GIT, | type=RevisionType.GIT, | ||||
directory=dir.id, | directory=dir.id, | ||||
metadata={}, | metadata={}, | ||||
synthetic=True, | synthetic=True, | ||||
) | ) | ||||
swh_storage.revision_add([rev]) | swh_storage.revision_add([rev]) | ||||
with cook_stream_revision_gitfast(swh_storage, rev.swhid()) as stream: | with cook_extract_revision(swh_storage, rev.swhid()) as (ert, p): | ||||
pattern = "M 160000 {} submodule".format(target_rev).encode() | ert.checkout(b"HEAD") | ||||
assert pattern in stream.read() | pattern = b"160000 submodule\x00%s" % hashutil.hash_to_bytes(target_rev) | ||||
tree = ert.repo[b"HEAD"].tree | |||||
assert pattern in ert.repo[tree].as_raw_string() | |||||
class TestSnapshotCooker(RepoFixtures): | class TestSnapshotCooker(RepoFixtures): | ||||
def test_snapshot_simple(self, git_loader, cook_extract_snapshot): | def test_snapshot_simple(self, git_loader, cook_extract_snapshot): | ||||
(loader, main_rev_id) = self.load_repo_simple(git_loader) | (loader, main_rev_id) = self.load_repo_simple(git_loader) | ||||
snp_id = loader.loaded_snapshot_id | snp_id = loader.loaded_snapshot_id | ||||
swhid = CoreSWHID(object_type=ObjectType.SNAPSHOT, object_id=snp_id) | swhid = CoreSWHID(object_type=ObjectType.SNAPSHOT, object_id=snp_id) | ||||
with cook_extract_snapshot(loader.storage, swhid) as (ert, p): | with cook_extract_snapshot(loader.storage, swhid) as (ert, p): | ||||
▲ Show 20 Lines • Show All 45 Lines • Show Last 20 Lines |