From: Christian Herdtweck Date: Wed, 8 Jun 2016 15:50:25 +0000 (+0200) Subject: started a unittest for multi-volume with compression X-Git-Tag: v2.2~35^2~32 X-Git-Url: http://developer.intra2net.com/git/?a=commitdiff_plain;h=3566054f9448392b9008b82c0460bb7a3383c164;p=python-delta-tar started a unittest for multi-volume with compression --- diff --git a/testing/test_multivol.py b/testing/test_multivol.py index 0026881..de7eaed 100644 --- a/testing/test_multivol.py +++ b/testing/test_multivol.py @@ -216,6 +216,44 @@ class MultivolGnuFormatTest(BaseTest): print('max err is {}, post={}'.format(max_err, max_err_post)) + def test_multivol_compress(self): + ''' check creation of multiple volume when compression is on ''' + + # create the content of the file to compress and hash it + hash = self.create_file("big", 50000) + + # create the tar file with volumes and compression + tarobj = TarFile.open("sample.tar.gz", + mode="w#gz", + format=self.tarfile_format, + max_volume_size=30000, + new_volume_handler=new_volume_handler, + debug=3) + tarobj.add("big") + tarobj.list() + tarobj.close() + + # check that the tar volumes were correctly created + assert os.path.exists("sample.tar.gz") + assert os.path.exists("sample.tar.gz.1") + assert not os.path.exists("sample.tar.gz.2") + + # TODO: check size of first tar! + + os.unlink("big") + assert not os.path.exists("big") + + # extract with normal tar and check output + print('unpacking:') + import subprocess + output = subprocess.check_output( + "tar xvfM sample.tar.gz --file=sample.tar.gz.1".split(), + universal_newlines=True) + for line in output.splitlines(): + print(line.rstrip()) + assert os.path.exists("big") + assert hash == self.md5sum("big") + def test_volume_extract1(self): ''' Create a tar file with multiple volumes and one file and extract it