示例#1
0
 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()
示例#2
0
 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)
示例#4
0
 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)
示例#6
0
 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)