def publish( request, module_name, _get_module_info=get_module_info, # only for testing ): ( bobo_before, bobo_after, object, realm, debug_mode, err_hook, validated_hook, transactions_manager, ) = _get_module_info(module_name) notify(PubStart(request)) request.processInputs() response = request.response if bobo_after is not None: response.after_list += (bobo_after, ) if debug_mode: response.debug_mode = debug_mode if realm and not request.get('REMOTE_USER', None): response.realm = realm if bobo_before is not None: bobo_before() # Get the path list. # According to RFC1738 a trailing space in the path is valid. path = request.get('PATH_INFO') request['PARENTS'] = [object] object = request.traverse(path, validated_hook=validated_hook) notify(PubAfterTraversal(request)) if transactions_manager: transactions_manager.recordMetaData(object, request) result = mapply( object, request.args, request, call_object, 1, missing_name, dont_publish_class, request, bind=1, ) if result is not response: response.setBody(result) notify(PubBeforeCommit(request)) return response
def setUp(self): portal = self.layer['portal'] alsoProvides(portal.REQUEST, IProductLayer) setRoles(portal, TEST_USER_ID, ['Manager']) self.mtool = getToolByName(portal, 'portal_membership') # XXX: Necessary but not sure why, since it's already being # done in setUpPloneSite e = PubBeforeCommit(portal.REQUEST) setUpAdminClient(e) self.client = getUtility(IAdminClient) wait_for_client_state(self.client, u'authenticated')
def setUpPloneSite(self, portal): # Install into Plone site using portal_setup applyProfile(portal, 'collective.xmpp.core:default') # Manually enable the browserlayer alsoProvides(portal.REQUEST, IProductLayer) # Start the reactor zr = getUtility(IZopeReactor) zr.start() wait_for_reactor_state(zr.reactor, state=True) registry = getUtility(IRegistry) settings = registry.forInterface(IXMPPSettings, check=False) settings.admin_jid = u'admin@localhost' settings.xmpp_domain = u'localhost' e = PubBeforeCommit(portal.REQUEST) setUpAdminClient(e) client = getUtility(IAdminClient) wait_for_client_state(client, u'authenticated') wait_on_client_deferreds(client)
def testBeforeCommit(self): e = PubBeforeCommit(_Request()) verifyObject(IPubBeforeCommit, e)