diff options
-rw-r--r-- | gemato/recursiveloader.py | 2 | ||||
-rw-r--r-- | tests/test_recursiveloader.py | 49 |
2 files changed, 50 insertions, 1 deletions
diff --git a/gemato/recursiveloader.py b/gemato/recursiveloader.py index dd643d2..13e3e8d 100644 --- a/gemato/recursiveloader.py +++ b/gemato/recursiveloader.py @@ -135,7 +135,7 @@ class ManifestRecursiveLoader(object): m.dump(f, sign_openpgp=sign, sort=sort, openpgp_env=self.openpgp_env, openpgp_keyid=self.openpgp_keyid) - return f.tell() + return f.buffer.tell() def _iter_manifests(self): """ diff --git a/tests/test_recursiveloader.py b/tests/test_recursiveloader.py index 6f8f4e1..8f0a830 100644 --- a/tests/test_recursiveloader.py +++ b/tests/test_recursiveloader.py @@ -8,6 +8,7 @@ import datetime import gzip import io import os +import unittest import gemato.cli import gemato.exceptions @@ -2399,6 +2400,54 @@ class CreateNewManifestTest(TempDirTestCase): self.assertTrue(os.path.exists( os.path.join(self.dir, 'Manifest'))) + def test_compress_manifests_low_watermark_bz2(self): + m = gemato.recursiveloader.ManifestRecursiveLoader( + os.path.join(self.dir, 'Manifest'), + allow_create=True, + hashes=['SHA256', 'SHA512']) + try: + m.save_manifests(force=True, compress_watermark=0, + compress_format='bz2') + except gemato.exceptions.UnsupportedCompression: + raise unittest.SkipTest('bz2 compression unsupported') + else: + self.assertFalse(os.path.exists( + os.path.join(self.dir, 'Manifest'))) + self.assertTrue(os.path.exists( + os.path.join(self.dir, 'Manifest.bz2'))) + + def test_compress_manifests_low_watermark_lzma(self): + m = gemato.recursiveloader.ManifestRecursiveLoader( + os.path.join(self.dir, 'Manifest'), + allow_create=True, + hashes=['SHA256', 'SHA512']) + try: + m.save_manifests(force=True, compress_watermark=0, + compress_format='lzma') + except gemato.exceptions.UnsupportedCompression: + raise unittest.SkipTest('lzma compression unsupported') + else: + self.assertFalse(os.path.exists( + os.path.join(self.dir, 'Manifest'))) + self.assertTrue(os.path.exists( + os.path.join(self.dir, 'Manifest.lzma'))) + + def test_compress_manifests_low_watermark_xz(self): + m = gemato.recursiveloader.ManifestRecursiveLoader( + os.path.join(self.dir, 'Manifest'), + allow_create=True, + hashes=['SHA256', 'SHA512']) + try: + m.save_manifests(force=True, compress_watermark=0, + compress_format='xz') + except gemato.exceptions.UnsupportedCompression: + raise unittest.SkipTest('xz compression unsupported') + else: + self.assertFalse(os.path.exists( + os.path.join(self.dir, 'Manifest'))) + self.assertTrue(os.path.exists( + os.path.join(self.dir, 'Manifest.xz'))) + def test_cli_compress_manifests_low_watermark(self): self.assertEqual( gemato.cli.main(['gemato', 'create', |