[Checkins] SVN: zope.publisher/branches/unauth-exc-handler/src/zope/publisher/tests/test_publisher.py Complete IReRaiseException tests.

Uli Fouquet uli at gnufix.de
Mon Jul 6 12:37:17 EDT 2009


Log message for revision 101638:
  Complete IReRaiseException tests.
  

Changed:
  U   zope.publisher/branches/unauth-exc-handler/src/zope/publisher/tests/test_publisher.py

-=-
Modified: zope.publisher/branches/unauth-exc-handler/src/zope/publisher/tests/test_publisher.py
===================================================================
--- zope.publisher/branches/unauth-exc-handler/src/zope/publisher/tests/test_publisher.py	2009-07-06 16:36:46 UTC (rev 101637)
+++ zope.publisher/branches/unauth-exc-handler/src/zope/publisher/tests/test_publisher.py	2009-07-06 16:37:16 UTC (rev 101638)
@@ -69,6 +69,15 @@
         publish(request, handle_errors=False)
         return response._result
 
+    def _registerExcAdapter(self, factory):
+        component.provideAdapter(factory, (Unauthorized,), IReRaiseException)
+
+    def _unregisterExcAdapter(self, factory):
+        gsm = component.getGlobalSiteManager()
+        gsm.unregisterAdapter(
+            factory=factory, required=(Unauthorized,),
+            provided=IReRaiseException)
+
     def testImplementsIPublication(self):
         self.failUnless(IPublication.providedBy(
                             DefaultPublication(self.app)))
@@ -94,21 +103,31 @@
     def testDebugError(self):
         self.assertRaises(DebugError, self._publisherResults, '/noDocString')
 
-    def testExcAdapterTellingNotToReraise(self):
+    def testIReRaiseExceptionAdapters(self):
 
         def dontReRaiseAdapter(context):
             def shouldBeReRaised():
                 return False
             return shouldBeReRaised
 
-        component.provideAdapter(dontReRaiseAdapter, (Unauthorized,), 
-                                 IReRaiseException)
-        self._publisherResults('/_item')
-        component.getGlobalSiteManager().unregisterAdapter(
-            factory=dontReRaiseAdapter, 
-            required=(Unauthorized,), 
-            provided=IReRaiseException)
+        self._registerExcAdapter(dontReRaiseAdapter)
+        try:
+            self._publisherResults('/_item')
+        except Unauthorized:
+            raise self.fail('Unauthorized raised though this should '
+                            'not happen')
+        finally:
+            self._unregisterExcAdapter(dontReRaiseAdapter)
 
+        def doReRaiseAdapter(context):
+            def shouldBeReRaised():
+                return True
+            return shouldBeReRaised
+
+        self._registerExcAdapter(doReRaiseAdapter)
+        self.failUnlessRaises(Unauthorized, self._publisherResults, '/_item')
+        self._unregisterExcAdapter(doReRaiseAdapter)
+            
 def test_suite():
     loader = unittest.TestLoader()
     return loader.loadTestsFromTestCase(PublisherTests)



More information about the Checkins mailing list