def test_storage_walk(): tmp = tempfile.mkdtemp() jn = partial(os.path.join, tmp) try: private_storage.save(jn('file1.txt'), ContentFile('')) private_storage.save(jn('one/file1.txt'), ContentFile('')) private_storage.save(jn('one/file2.txt'), ContentFile('')) private_storage.save(jn('one/two/file1.txt'), ContentFile('')) private_storage.save(jn('one/three/file1.txt'), ContentFile('')) private_storage.save(jn('four/five/file1.txt'), ContentFile('')) private_storage.save(jn(u'four/kristi\u2603/kristi\u2603.txt'), ContentFile('')) results = [(dir, set(subdirs), set(files)) for dir, subdirs, files in sorted( walk_storage(tmp, storage=private_storage))] yield (eq_, results.pop(0), (tmp, set(['four', 'one']), set(['file1.txt']))) yield (eq_, results.pop(0), (jn('four'), set(['five', 'kristi\xe2\x98\x83']), set([]))) yield (eq_, results.pop(0), (jn('four/five'), set([]), set(['file1.txt']))) yield (eq_, results.pop(0), (jn('four/kristi\xe2\x98\x83'), set([]), set(['kristi\xe2\x98\x83.txt']))) yield (eq_, results.pop(0), (jn('one'), set(['three', 'two']), set(['file1.txt', 'file2.txt']))) yield (eq_, results.pop(0), (jn('one/three'), set([]), set(['file1.txt']))) yield (eq_, results.pop(0), (jn('one/two'), set([]), set(['file1.txt' ]))) yield (eq_, len(results), 0) finally: rm_local_tmp_dir(tmp)
def test_storage_walk(): tmp = tempfile.mkdtemp() jn = partial(os.path.join, tmp) try: storage.save(jn('file1.txt'), ContentFile('')) storage.save(jn('one/file1.txt'), ContentFile('')) storage.save(jn('one/file2.txt'), ContentFile('')) storage.save(jn('one/two/file1.txt'), ContentFile('')) storage.save(jn('one/three/file1.txt'), ContentFile('')) storage.save(jn('four/five/file1.txt'), ContentFile('')) storage.save(jn(u'four/kristi\u2603/kristi\u2603.txt'), ContentFile('')) results = [(dir, set(subdirs), set(files)) for dir, subdirs, files in sorted(walk_storage(tmp))] yield (eq_, results.pop(0), (tmp, set(['four', 'one']), set(['file1.txt']))) yield (eq_, results.pop(0), (jn('four'), set(['five', 'kristi\xe2\x98\x83']), set([]))) yield (eq_, results.pop(0), (jn('four/five'), set([]), set(['file1.txt']))) yield (eq_, results.pop(0), (jn('four/kristi\xe2\x98\x83'), set([]), set(['kristi\xe2\x98\x83.txt']))) yield (eq_, results.pop(0), (jn('one'), set(['three', 'two']), set(['file1.txt', 'file2.txt']))) yield (eq_, results.pop(0), (jn('one/three'), set([]), set(['file1.txt']))) yield (eq_, results.pop(0), (jn('one/two'), set([]), set(['file1.txt']))) yield (eq_, len(results), 0) finally: rm_local_tmp_dir(tmp)
def extract_zip(source): """Extracts the zip file.""" tempdir = tempfile.mkdtemp() zip = SafeUnzip(source) try: if zip.is_valid(): zip.extract_to_dest(tempdir) except: rm_local_tmp_dir(tempdir) raise return tempdir
def extract_zip(source, remove=False, fatal=True): """Extracts the zip file. If remove is given, removes the source file.""" tempdir = tempfile.mkdtemp() zip = SafeUnzip(source) try: if zip.is_valid(fatal): zip.extract_to_dest(tempdir) except: rm_local_tmp_dir(tempdir) raise if remove: os.remove(source) return tempdir
def tearDown(self): rm_local_tmp_dir(self.tmp)
def cleanup(self): if os.path.exists(self.dest): rm_local_tmp_dir(self.dest)