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']
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']
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
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