diff --git a/swh/vault/tests/test_cookers.py b/swh/vault/tests/test_cookers.py --- a/swh/vault/tests/test_cookers.py +++ b/swh/vault/tests/test_cookers.py @@ -972,27 +972,31 @@ with cook_extract_revision(loader.storage, swhid, fsck=False) as (ert, p): 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" + date = TimestampWithTimezone.from_datetime( + datetime.datetime.now(datetime.timezone.utc).replace(microsecond=0) + ) + dir = Directory( entries=( DirectoryEntry( name=b"submodule", type="rev", target=hashutil.hash_to_bytes(target_rev), - perms=0o100644, + perms=0o160000, ), ), ) swh_storage.directory_add([dir]) rev = Revision( - message=b"", - author=Person(name=None, email=None, fullname=b""), - date=None, - committer=Person(name=None, email=None, fullname=b""), - committer_date=None, + message=b"msg", + author=Person.from_fullname(b"me "), + date=date, + committer=Person.from_fullname(b"me "), + committer_date=date, parents=(), type=RevisionType.GIT, directory=dir.id, @@ -1001,9 +1005,11 @@ ) swh_storage.revision_add([rev]) - with cook_stream_revision_gitfast(swh_storage, rev.swhid()) as stream: - pattern = "M 160000 {} submodule".format(target_rev).encode() - assert pattern in stream.read() + with cook_extract_revision(swh_storage, rev.swhid()) as (ert, p): + ert.checkout(b"HEAD") + 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):