else:
self.cmp = lzma.LZMACompressor()
- elif comptype not in [ "tar" ]:
+ elif comptype != "tar":
if self.encryption is not None:
raise InvalidEncryptionError("encryption not available for "
"compression %s" % comptype)
raise CompressionError("unknown compression type %r" % comptype)
- except: # XXX seriously?
+ except:
if not self._extfileobj:
self.fileobj.close()
self.closed = True
stream = _Stream(name, filemode, comptype, fileobj, bufsize,
concat_stream=True, encryption=encryption,
compresslevel=compresslevel)
- kwargs ["concat_compression"] = True
+ if comptype != "tar":
+ kwargs ["concat_compression"] = True
try:
t = cls(name, filemode, stream, **kwargs)
except: # XXX except what?
import os
from tempfile import TemporaryDirectory
+import deltatar.crypto as crypto
from deltatar.tarfile import TarFile, PAX_FORMAT, GNU_FORMAT, BLOCKSIZE
from . import BaseTest, new_volume_handler, closing_new_volume_handler
from .create_pseudo_random_files import create_file as create_random_file
assert value == self.md5sum(key)
def test_get_file_size(self):
- ''' test _Stream.get_file_size which is basis for multivol with compres
+ '''
+ Test _Stream.get_file_size which is the basis for multivol with
+ compression.
'''
# create test files of different sizes
max_err = 0
max_err_post = 0
- for mode in 'w|gz', 'w|bz2', 'w|xz', 'w#gz', 'w#gz.aes128', \
- 'w#gz.aes256', 'w#aes128':
+ for mode, password in [ ('w|gz', None) , ('w|bz2', None)
+ , ('w|xz', None) , ('w#gz' , None)
+ , ('w#gz', "test"), ('w#tar', "test")
+ ]:
tar_file_name = "size_test.tar." + mode[2:]
for size_number in range(4,n_sizes):
for order in 1,-1: # small files first or big files first
+ encryptor = None
+ if password is not None:
+ encryptor = crypto.Encrypt (password=password, version=1,
+ paramversion=1)
tarobj = TarFile.open(tar_file_name,
mode=mode,
format=self.tarfile_format,
- password='test')
+ encryption=encryptor)
for file_name in file_names[:size_number][::order]:
tarobj.add(file_name)
estimate = tarobj.fileobj.estim_file_size()