[Zope-Checkins] SVN: Zope/trunk/src/Zope2/App/ Merge change from 2.12 branch

Wichert Akkerman wichert at wiggy.net
Tue Apr 13 08:16:43 EDT 2010


Log message for revision 110780:
  Merge change from 2.12 branch

Changed:
  U   Zope/trunk/src/Zope2/App/startup.py
  U   Zope/trunk/src/Zope2/App/tests/testExceptionHook.py

-=-
Modified: Zope/trunk/src/Zope2/App/startup.py
===================================================================
--- Zope/trunk/src/Zope2/App/startup.py	2010-04-13 12:13:26 UTC (rev 110779)
+++ Zope/trunk/src/Zope2/App/startup.py	2010-04-13 12:16:42 UTC (rev 110780)
@@ -24,6 +24,7 @@
 from Acquisition import aq_base
 from Acquisition import aq_inner
 from Acquisition import aq_parent
+from Acquisition.interfaces import IAcquirer
 from App.config import getConfiguration
 from time import asctime
 from zExceptions import upgradeException
@@ -218,6 +219,8 @@
             # zope.publisher uses as well.
             view = queryMultiAdapter((v, REQUEST), name=u'index.html')
             if view is not None:
+                if IAcquirer.providedBy(published):
+                    view = view.__of__(published)
                 v = view()
                 response = REQUEST.RESPONSE
                 response.setStatus(t)

Modified: Zope/trunk/src/Zope2/App/tests/testExceptionHook.py
===================================================================
--- Zope/trunk/src/Zope2/App/tests/testExceptionHook.py	2010-04-13 12:13:26 UTC (rev 110779)
+++ Zope/trunk/src/Zope2/App/tests/testExceptionHook.py	2010-04-13 12:16:42 UTC (rev 110780)
@@ -16,6 +16,7 @@
 import unittest
 import logging
 
+import Acquisition
 from zope.component.testing import PlacelessSetup
 from zope.interface.common.interfaces import IException
 from zope.publisher.skinnable import setDefaultSkin
@@ -215,7 +216,7 @@
         self.call_no_exc(hook, None, None, f)
         self.assertEquals(hook.unresolved_conflict_errors, 2)
 
-class Client:
+class Client(Acquisition.Explicit):
 
     def __init__(self):
         self.standard_error_message = True
@@ -320,14 +321,16 @@
         tb = client.messages[0]
         self.failUnless("ConflictError: database conflict error" in tb, tb)
 
-class CustomExceptionView:
+class CustomExceptionView(Acquisition.Explicit):
 
     def __init__(self, context, request):
         self.context = context
         self.request = request
 
     def __call__(self):
-        return "Exception View: %s" % self.context.__class__.__name__
+        return "Exception View: %s\nContext: %s" % (
+                self.context.__class__.__name__,
+                Acquisition.aq_parent(self).__class__.__name__)
 
 def registerExceptionView(for_):
     from zope.interface import Interface
@@ -355,6 +358,7 @@
         self.failUnless(isinstance(v, HTTPResponse), v)
         self.failUnless(v.status == 401, (v.status, 401))
         self.failUnless("Exception View: Unauthorized" in str(v))
+        self.failUnless("Context: StandardClient" in str(v))
 
     def testCustomExceptionViewForbidden(self):
         from ZPublisher.HTTPResponse import HTTPResponse



More information about the Zope-Checkins mailing list