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