Example #1
0
 def test_unzip(self, tmpdir):
     # make sure we can unzip filetrees
     zip_file = str(tmpdir / "sample.zip")
     shutil.copy(
         os.path.join(os.path.dirname(__file__), 'input', 'sample1.zip'),
         zip_file)
     dst = tmpdir.mkdir("dst")
     unzip(zip_file, str(dst))
     assert dst.listdir() == [dst / 'somedir']
     assert sorted(os.listdir(str(dst.join("somedir")))) == [
         'othersample.txt', 'sample.txt']
Example #2
0
 def test_unzip(self):
     # make sure we can unzip filetrees
     zip_file = os.path.join(self.workdir, 'sample.zip')
     shutil.copy(
         os.path.join(os.path.dirname(__file__), 'input', 'sample1.zip'),
         zip_file)
     dst = os.path.join(self.workdir, 'dst')
     os.mkdir(dst)
     unzip(zip_file, dst)
     assert os.listdir(dst) == ['somedir']
     level2_dir = os.path.join(dst, 'somedir')
     assert sorted(os.listdir(level2_dir)) == [
         'othersample.txt', 'sample.txt']
Example #3
0
 def process(self, path, metadata):
     ext = os.path.splitext(path)[1]
     if ext not in self.supported_extensions:
         return path, metadata
     if ext == '.zip':
         dst = tempfile.mkdtemp()
         unzip(path, dst)
         dirlist = os.listdir(dst)
         if len(dirlist) != 1 or os.path.isdir(
                 os.path.join(dst, dirlist[0])):
             metadata['error'] = True
             metadata['error-descr'] = 'ambiguity problem: several files'
             shutil.rmtree(dst)
             return None, metadata
         path = os.path.join(dst, dirlist[0])
     return path, metadata
Example #4
0
 def process(self, path, metadata):
     ext = os.path.splitext(path)[1]
     if ext not in self.supported_extensions:
         return path, metadata
     if ext == '.zip':
         dst = tempfile.mkdtemp()
         unzip(path, dst)
         dirlist = os.listdir(dst)
         if len(dirlist) != 1 or os.path.isdir(os.path.join(
                 dst, dirlist[0])):
             metadata['error'] = True
             metadata['error-descr'] = 'ambiguity problem: several files'
             shutil.rmtree(dst)
             return None, metadata
         path = os.path.join(dst, dirlist[0])
     return path, metadata