def test_setThreadSite_clearThreadSite(self): from zope.app.component.localservice import threadSiteSubscriber from zope.app.component.localservice import clearSite from zope.app.publication.zopepublication import BeforeTraverseEvent self.assertEqual(getSite(), None) # A non-site is traversed ob = object() request = object() ev = BeforeTraverseEvent(ob, request) threadSiteSubscriber(ev) self.assertEqual(getSite(), None) # A site is traversed ss = ServiceServiceStub() site = Folder() site.setSiteManager(ss) ev = BeforeTraverseEvent(site, request) threadSiteSubscriber(ev) self.assertEqual(getSite(), site) clearSite() self.assertEqual(getSite(), None)
def __before_publishing_traverse__(self, arg1, arg2=None): """ Pre-traversal hook. """ # XXX hack around a bug(?) in BeforeTraverse.MultiHook REQUEST = arg2 or arg1 notify(BeforeTraverseEvent(self, REQUEST)) if REQUEST['REQUEST_METHOD'] not in ('GET', 'POST'): return stack = REQUEST['TraversalRequestNameStack'] key = stack and stack[-1] or '(Default)' # if there's a Zope3-style default view name set and the # corresponding view exists, take that in favour of the FTI's # default view if key == '(Default)': viewname = queryDefaultViewName(self, REQUEST) if (viewname and queryMultiAdapter( (self, REQUEST), name=viewname) is not None): stack.append(viewname) REQUEST._hacked_path = 1 return ti = self.getTypeInfo() method_id = ti and ti.queryMethodID(key, context=self) if method_id: if key != '(Default)': stack.pop() if method_id != '(Default)': stack.append(method_id) REQUEST._hacked_path = 1
def __before_publishing_traverse__(self, arg1, arg2=None): """ Pre-traversal hook. """ # XXX hack around a bug(?) in BeforeTraverse.MultiHook REQUEST = arg2 or arg1 notify(BeforeTraverseEvent(self, REQUEST)) self.setupCurrentSkin(REQUEST) super(PortalObjectBase, self).__before_publishing_traverse__(arg1, arg2)
def __before_publishing_traverse__(self, arg1, arg2=None): """ Pre-traversal hook. """ # XXX hack around a bug(?) in BeforeTraverse.MultiHook REQUEST = arg2 or arg1 try: notify(BeforeTraverseEvent(self, REQUEST)) except ComponentLookupError: # allow ZMI access, even if the portal's site manager is missing pass self.setupCurrentSkin(REQUEST) super(PortalObjectBase, self).__before_publishing_traverse__(arg1, arg2)
def test_setThreadSite_clearThreadSite(self): from zope.app.component.site import threadSiteSubscriber, clearSite from zope.app.publication.zopepublication import BeforeTraverseEvent self.assertEqual(getSite(), None) # A site is traversed sm = SiteManagerStub() site = Folder() site.setSiteManager(sm) ev = BeforeTraverseEvent(site, object()) threadSiteSubscriber(site, ev) self.assertEqual(getSite(), site) clearSite() self.assertEqual(getSite(), None)
def __before_publishing_traverse__(self, arg1, arg2=None): """ Pre-traversal hook. """ # XXX hack around a bug(?) in BeforeTraverse.MultiHook REQUEST = arg2 or arg1 notify(BeforeTraverseEvent(self, REQUEST)) if REQUEST['REQUEST_METHOD'] not in ('GET', 'POST'): return stack = REQUEST['TraversalRequestNameStack'] key = stack and stack[-1] or '(Default)' ti = self.getTypeInfo() method_id = ti and ti.queryMethodID(key, context=self) if method_id: if key != '(Default)': stack.pop() if method_id != '(Default)': stack.append(method_id) REQUEST._hacked_path = 1
def __call__(self, container, request): zope.event.notify(BeforeTraverseEvent(container, request))