[Zope-Checkins] SVN: Zope/trunk/src/ZPublisher/ - small refactoring for better readability: moved some code in separate _setBCIHeaders method
Yvo Schubbe
y.2010 at wcm-solutions.de
Tue Jun 22 09:39:12 EDT 2010
Log message for revision 113761:
- small refactoring for better readability: moved some code in separate _setBCIHeaders method
Changed:
U Zope/trunk/src/ZPublisher/HTTPResponse.py
U Zope/trunk/src/ZPublisher/tests/testHTTPResponse.py
-=-
Modified: Zope/trunk/src/ZPublisher/HTTPResponse.py
===================================================================
--- Zope/trunk/src/ZPublisher/HTTPResponse.py 2010-06-22 13:28:57 UTC (rev 113760)
+++ Zope/trunk/src/ZPublisher/HTTPResponse.py 2010-06-22 13:39:12 UTC (rev 113761)
@@ -755,21 +755,7 @@
m = m + '<p>\nNo Authorization header found.</p>'
raise Unauthorized, m
- def exception(self, fatal=0, info=None,
- absuri_match=re.compile(r'\w+://[\w\.]+').match,
- tag_search=re.compile('[a-zA-Z]>').search,
- abort=1
- ):
- if isinstance(info, tuple) and len(info) == 3:
- t, v, tb = info
- else:
- t, v, tb = sys.exc_info()
-
- if issubclass(t, Unauthorized):
- self._unauthorized()
-
- stb = tb # note alias between tb and stb
-
+ def _setBCIHeaders(self, t, tb):
try:
# Try to capture exception info for bci calls
et = translate(str(t), nl2sp)
@@ -794,13 +780,26 @@
self.setHeader('bobo-exception-file', ef)
self.setHeader('bobo-exception-line', el)
-
except:
- # Dont try so hard that we cause other problems ;)
+ # Don't try so hard that we cause other problems ;)
pass
- tb = stb # original traceback
- del stb
+ del tb
+
+ def exception(self, fatal=0, info=None,
+ absuri_match=re.compile(r'\w+://[\w\.]+').match,
+ tag_search=re.compile('[a-zA-Z]>').search,
+ abort=1
+ ):
+ if isinstance(info, tuple) and len(info) == 3:
+ t, v, tb = info
+ else:
+ t, v, tb = sys.exc_info()
+
+ if issubclass(t, Unauthorized):
+ self._unauthorized()
+
+ self._setBCIHeaders(t, tb)
self.setStatus(t)
if self.status >= 300 and self.status < 400:
if isinstance(v, str) and absuri_match(v) is not None:
Modified: Zope/trunk/src/ZPublisher/tests/testHTTPResponse.py
===================================================================
--- Zope/trunk/src/ZPublisher/tests/testHTTPResponse.py 2010-06-22 13:28:57 UTC (rev 113760)
+++ Zope/trunk/src/ZPublisher/tests/testHTTPResponse.py 2010-06-22 13:39:12 UTC (rev 113761)
@@ -1280,6 +1280,23 @@
self.assertEqual(len(lines), 1)
self.assertEqual(lines[0], 'Kilroy was here!')
+ def test__setBCIHeaders(self):
+ response = self._makeOne()
+ try:
+ raise AttributeError('ERROR VALUE')
+ except AttributeError:
+ t, v, tb = sys.exc_info()
+ response._setBCIHeaders(t, tb)
+ # required by Bobo Call Interface (BCI)
+ self.assertEqual(response.headers['bobo-exception-type'],
+ "<type 'exceptions.AttributeError'>")
+ self.assertEqual(response.headers['bobo-exception-value'],
+ 'See the server error log for details')
+ self.failUnless('bobo-exception-file' in response.headers)
+ self.failUnless('bobo-exception-line' in response.headers)
+ finally:
+ del tb
+
def test_exception_Internal_Server_Error(self):
response = self._makeOne()
try:
More information about the Zope-Checkins
mailing list