diff options
author | Michał Górny <mgorny@gentoo.org> | 2023-05-29 16:29:43 +0200 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2023-05-29 16:30:22 +0200 |
commit | 68898257bd1fed1ee1be9dd99945a1ef3a01ac06 (patch) | |
tree | 130f6a5e66baa434a765be4e23b1ead0aa757e30 /tests/test_recursiveloader.py | |
parent | a098d83e92fa807d95ee160b1506c4561b28eb2b (diff) | |
download | gemato-68898257bd1fed1ee1be9dd99945a1ef3a01ac06.tar.gz |
tests: Make StrayCompressedManifestLayout allow any gzip output
Update StrayCompressedManifestLayout test not to rely on specific gzip
output. It changes in Python 3.12, and it was a bad idea anyway.
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'tests/test_recursiveloader.py')
-rw-r--r-- | tests/test_recursiveloader.py | 47 |
1 files changed, 27 insertions, 20 deletions
diff --git a/tests/test_recursiveloader.py b/tests/test_recursiveloader.py index 4a562bd..a0bbff8 100644 --- a/tests/test_recursiveloader.py +++ b/tests/test_recursiveloader.py @@ -23,6 +23,7 @@ from gemato.exceptions import ( ManifestNoSupportedHashes, ManifestInsecureHashes, ) +from gemato.hash import hash_path from gemato.manifest import ManifestPathEntry, ManifestFileEntry from gemato.recursiveloader import ManifestRecursiveLoader @@ -1790,17 +1791,6 @@ def test_update_entry_for_path_no_hash_specified(layout_factory): 'sub/Manifest': StrayManifestLayout.MANIFESTS['sub/Manifest'].lstrip() }), - (StrayCompressedManifestLayout, - ['MD5'], - ManifestRecursiveLoader.update_entries_for_directory, - '', - None, - None, - {'Manifest': 'MANIFEST sub/Manifest.gz 75 MD5 ' - 'e6378b64d3577c73c979fdb423937d94\n', - 'sub/Manifest.gz': - StrayCompressedManifestLayout.MANIFESTS['sub/Manifest.gz'].lstrip() - }), (FilenameWhitespaceLayout, ['MD5'], ManifestRecursiveLoader.update_entries_for_directory, @@ -1926,6 +1916,32 @@ def test_update_entry_hash_specs(layout_factory, layout, ctor, func, path, m.assert_directory_verifies() +def test_update_entry_hash_stray_compressed(layout_factory): + layout = StrayCompressedManifestLayout + tmp_path = layout_factory.create(layout) + m = ManifestRecursiveLoader(tmp_path / layout.TOP_MANIFEST, + hashes=["MD5"], + allow_xdev=False) + ManifestRecursiveLoader.update_entries_for_directory(m, "") + m.save_manifests() + + output = {} + for relpath in layout.MANIFESTS: + with open_potentially_compressed_path(tmp_path / relpath, + 'r') as f: + output[relpath] = f.read() + hashes = hash_path(tmp_path / "sub/Manifest.gz", ["__size__", "md5"]) + expected = dict(layout.MANIFESTS) + expected.update( + {"Manifest": f"MANIFEST sub/Manifest.gz {hashes['__size__']} " + f"MD5 {hashes['md5']}\n", + "sub/Manifest.gz": + StrayCompressedManifestLayout.MANIFESTS["sub/Manifest.gz"].lstrip() + }) + assert output == expected + m.assert_directory_verifies() + + @pytest.mark.parametrize( 'layout,manifest_update', [(MultipleStrayFilesLayout, @@ -2112,15 +2128,6 @@ def test_update_entry_and_discard(layout_factory): 'da39a3ee5e6b4b0d3255bfef95601890afd80709\n', }, 'TIMESTAMP'), - (StrayCompressedManifestLayout, - '', - {'Manifest': 'MANIFEST sub/Manifest.gz 84 SHA1 ' - 'aa62bd16d440d2a118a381df4f9b9c413d993e75\n' - 'TIMESTAMP\n', - 'sub/Manifest.gz': 'DATA test 0 SHA1 ' - 'da39a3ee5e6b4b0d3255bfef95601890afd80709\n', - }, - 'TIMESTAMP'), (FilenameWhitespaceLayout, '', {'Manifest': |