[Checkins] SVN: zope.server/branches/achapman-exc-info/src/zope/server/http/tests/test_wsgiserver.py A basic test for changes to "start_response".
Satchidanand Haridas
satchit at zope.com
Wed May 11 14:26:56 EDT 2011
Log message for revision 121655:
A basic test for changes to "start_response".
Changed:
U zope.server/branches/achapman-exc-info/src/zope/server/http/tests/test_wsgiserver.py
-=-
Modified: zope.server/branches/achapman-exc-info/src/zope/server/http/tests/test_wsgiserver.py
===================================================================
--- zope.server/branches/achapman-exc-info/src/zope/server/http/tests/test_wsgiserver.py 2011-05-11 14:47:50 UTC (rev 121654)
+++ zope.server/branches/achapman-exc-info/src/zope/server/http/tests/test_wsgiserver.py 2011-05-11 18:26:55 UTC (rev 121655)
@@ -320,7 +320,43 @@
self.server.application = orig_app
+ def test_exception_handling(self):
+ # some applications/middleware (like repoze.retry) might pass the
+ # exc_info to start_response.
+ orig_app = self.server.application
+
+ class DummyException(Exception):
+ value = "Dummy Exception to test start_response"
+ def __str__(self):
+ return repr(self.value)
+
+ def app(environ, start_response):
+ try:
+ start_response(
+ "500 Error",
+ [],
+ (DummyException, DummyException.value, None))
+ except DummyException as e:
+ return e.value.split()
+
+ class FakeTask:
+ response = []
+ getCGIEnvironment = lambda _: {}
+ class request_data:
+ getBodyStream = lambda _: StringIO.StringIO()
+ request_data = request_data()
+ setResponseStatus = appendResponseHeaders = lambda *_: None
+ def write(self, v):
+ self.response.append(v)
+
+ self.server.application = app
+ task = FakeTask()
+ self.server.executeRequest(task)
+
+ self.assertEqual(task.response, DummyException.value.split())
+ self.server.application = orig_app
+
class PMDBTests(Tests):
def _getServerClass(self):
More information about the checkins
mailing list