def __save_zip(self, file): """Save a Zip ODF from the available parts. """ # Parts were loaded by "save" parts = self.__parts compression = ZIP_DEFLATED try: filezip = ZipFile(file, 'w', compression=compression) except RuntimeError: # No zlib module compression = ZIP_STORED filezip = ZipFile(file, 'w', compression=compression) # Parts to save, except manifest at the end part_names = parts.keys() part_names.remove(ODF_MANIFEST) # "Pretty-save" parts in some order # mimetype requires to be first and uncompressed filezip.compression = ZIP_STORED filezip.writestr('mimetype', parts['mimetype']) filezip.compression = compression part_names.remove('mimetype') # XML parts for path in ODF_CONTENT, ODF_META, ODF_SETTINGS, ODF_STYLES: filezip.writestr(path, parts[path]) part_names.remove(path) # Everything else for path in part_names: data = parts[path] if data is None: # Deleted continue filezip.writestr(path, data) # Manifest filezip.writestr(ODF_MANIFEST, parts[ODF_MANIFEST]) filezip.close()
def __save_zip(self, file): """Save a Zip ODF from the available parts. """ # Parts were loaded by "save" parts = self.__parts compression = ZIP_DEFLATED try: filezip = ZipFile(file, 'w', compression=compression) except RuntimeError: # No zlib module compression = ZIP_STORED filezip = ZipFile(file, 'w', compression=compression) # Parts to save, except manifest at the end part_names = parts.keys() try: part_names.remove(ODF_MANIFEST) except KeyError: printwarn("missing '%s'" % ODF_MANIFEST) # "Pretty-save" parts in some order # mimetype requires to be first and uncompressed filezip.compression = ZIP_STORED try: filezip.writestr('mimetype', parts['mimetype']) filezip.compression = compression part_names.remove('mimetype') except: printwarn("missing 'mimetype'") # XML parts for path in ODF_CONTENT, ODF_META, ODF_SETTINGS, ODF_STYLES: if path not in parts: printwarn("missing '%s'" % path) continue filezip.writestr(path, parts[path]) part_names.remove(path) # Everything else for path in part_names: data = parts[path] if data is None: # Deleted continue filezip.writestr(path, data) # Manifest filezip.writestr(ODF_MANIFEST, parts[ODF_MANIFEST]) filezip.close()
def testGetData(self): z = ZipFile(TEMP_ZIP, "w") z.compression = self.compression try: name = "testdata.dat" data = "".join([chr(x) for x in range(256)]) * 500 z.writestr(name, data) z.close() zi = zipimport.zipimporter(TEMP_ZIP) self.assertEquals(data, zi.get_data(name)) finally: z.close() os.remove(TEMP_ZIP)
def testGetData(self): z = ZipFile(TEMP_ZIP, "w") z.compression = self.compression try: name = "testdata.dat" data = bytes(x for x in range(256)) z.writestr(name, data) z.close() zi = zipimport.zipimporter(TEMP_ZIP) self.assertEquals(data, zi.get_data(name)) self.assert_('zipimporter object' in repr(zi)) finally: z.close() os.remove(TEMP_ZIP)
def testGetData(self): z = ZipFile(TEMP_ZIP, "w") z.compression = self.compression try: name = "testdata.dat" data = bytes(x for x in range(256)) z.writestr(name, data) z.close() zi = zipimport.zipimporter(TEMP_ZIP) self.assertEqual(data, zi.get_data(name)) self.assertIn('zipimporter object', repr(zi)) finally: z.close() os.remove(TEMP_ZIP)