Esempio n. 1
0
 def test_extract(self):
     for v in (True, False):
         with TempDir() as tdir:
             tdir = os.path.join(tdir, 'a' * 250)
             os.makedirs(make_long_path_useable(tdir))
             extract(simple_rar, tdir, verify_data=v)
             h = {
                 normalize(
                     os.path.abspath(os.path.join(tdir, h['filename']))): h
                 for h in headers(simple_rar)
             }
             data = {}
             for dirpath, dirnames, filenames in os.walk(tdir):
                 for f in filenames:
                     path = normalize(os.path.join(dirpath, f))
                     data[os.path.relpath(path, tdir).replace(
                         os.sep, '/')] = d = open(path, 'rb').read()
                     if f == 'one.txt':
                         self.ae(os.path.getmtime(path), 1098472879)
                     self.ae(h[path]['unpack_size'], len(d))
                     self.ae(h[path]['file_crc'] & 0xffffffff,
                             crc32(d) & 0xffffffff)
         q = {k: v for k, v in sr_data.items() if v}
         del q['symlink']
         self.ae(data, q)
Esempio n. 2
0
 def test_multipart(self):
     self.ae(list(names(multipart_rar)), ['Fifteen_Feet_of_Time.pdf'])
     for v in (True, False):
         with TempDir() as tdir:
             extract(multipart_rar, tdir, verify_data=v)
             h = next(headers(multipart_rar))
             raw = open(os.path.join(tdir, h['filename']), 'rb').read()
             self.ae(len(raw), h['unpack_size'])
             self.ae(hashlib.sha1(raw).hexdigest(), 'a9fc6a11d000044f17fcdf65816348ce0be3b145')