def set(self, value): """See z3c.form.interfaces.IDataManager""" handle = zope.component.getUtility(IConnectorHandle).get_handle() storage_key = self.storage_key if not value: for name in (self.storage_key, self.storage_key + '.metadata.xml'): if handle.exists(name): handle.remove(name) return dirname = os.path.dirname(storage_key) if not handle.exists(dirname): handle.makedir(dirname, True, True) metadata = dict(sha256=hashlib.sha256(value.data).hexdigest(), filename=value.filename, contenttype=value.contentType) with handle.open(storage_key, 'wb') as fp: with handle.open(storage_key + '.metadata.xml', 'wb') as fp_metadata: fp.write(value.data) fp_metadata.write( util.metadata_to_xml(context=self.context, metadata=metadata))
def set(self, value): """See z3c.form.interfaces.IDataManager""" handle = zope.component.getUtility(IWebdavHandle).webdav_handle() storage_key = self.storage_key dirname = os.path.dirname(storage_key) if not value: for name in (storage_key, storage_key + 'metadata.xml'): if handle.exists(name): handle.remove(name) return if not handle.exists(dirname): handle.makedir(dirname, True, True) value_utf8 = normalize_xml(value) value_sha256 = xml_hash(value_utf8) with handle.open(storage_key, 'wb') as fp: with handle.open(storage_key + '.metadata.xml', 'wb') as fp_metadata_xml: fp.write(value_utf8) metadata = dict(sha256=value_sha256) fp_metadata_xml.write( util.metadata_to_xml(context=self.context, metadata=metadata))
def test_metadata_to_xml_plone_root(self): from xmldirector.plonecore.dx import util xml = util.metadata_to_xml(self.portal) metadata = util.xml_to_metadata(xml) self.assertEqual(metadata['plone-path'], '/plone') self.assertEqual(metadata['plone-uid'], None)
def set(self, value): """See z3c.form.interfaces.IDataManager""" handle = zope.component.getUtility(IWebdavHandle).webdav_handle() storage_key = self.storage_key if not value: for name in (self.storage_key, self.storage_key + '.metadata.xml'): if handle.exists(name): handle.remove(name) return dirname = os.path.dirname(storage_key) if not handle.exists(dirname): handle.makedir(dirname, True, True) metadata = dict(sha256=hashlib.sha256(value.data).hexdigest(), filename=value.filename, contenttype=value.contentType) with handle.open(storage_key, 'wb') as fp: with handle.open(storage_key + '.metadata.xml', 'wb') as fp_metadata: fp.write(value.data) fp_metadata.write( util.metadata_to_xml(context=self.context, metadata=metadata))