def test_write_load_zexp(self): ob = self.portal.info path = zexpcopy.write_zexp(ob) object_ids = ob.objectIds() self.portal._delObject('info') zexpcopy.load_zexp(path, self.portal) self.assertEqual(self.portal.info.objectIds(), object_ids)
def __call__(self): ctx = self.context.aq_inner info = error = '' sites = ctx.objectValues([METATYPE_NYSITE, METATYPE_GROUPWARESITE]) sites = [(s.getId(), s.title_or_id()) for s in sites] sites.sort(key=operator.itemgetter(0)) submit = self.request.form.get('submit') if submit: zexp_path = self.request.form.get('zexp_path') path = self.request.form.get('location') ig_id = self.request.form.get('ig') ob = ctx.unrestrictedTraverse('/%s/%s' % (ig_id, path)) sender = ctx.applications.mail_from to = self.request.AUTHENTICATED_USER.mail new_ids = [] sp = transaction.savepoint() try: new_ids = zexpcopy.load_zexp(zexp_path, ob) except IOError, e: sp.rollback() error = (('Can not read file with exported data. ' 'Did you enter correctly the path you received by ' 'email after export?. Error was: %s') % e.args) logger.exception(error) except Exception, e: sp.rollback() error = 'Error importing data from zexp file: %s' % e.args logger.exception(error) subject = 'Error importing IG Data' zexpcopy.send_action_completed_mail(error, sender, to, subject)