summaryrefslogtreecommitdiff
path: root/paste
diff options
context:
space:
mode:
authorianb <devnull@localhost>2007-09-21 03:40:46 +0000
committerianb <devnull@localhost>2007-09-21 03:40:46 +0000
commitca095f39ad9e84ef5cec0d56cd5972ceaf1c6f8e (patch)
treeb661f3fe959f62931348a439e44f3e88144622ab /paste
parent774d2b1de3ec629f3b510e7ad62f088c0a2ed49c (diff)
downloadpaste-ca095f39ad9e84ef5cec0d56cd5972ceaf1c6f8e.tar.gz
Simplify the way HTTPExceptionHandler catches HTTPExceptions. You can no longer raise httpexceptions in your app_iter
Diffstat (limited to 'paste')
-rw-r--r--paste/httpexceptions.py14
-rw-r--r--paste/wsgilib.py2
2 files changed, 4 insertions, 12 deletions
diff --git a/paste/httpexceptions.py b/paste/httpexceptions.py
index 946f8f3..cd3b81a 100644
--- a/paste/httpexceptions.py
+++ b/paste/httpexceptions.py
@@ -628,18 +628,10 @@ class HTTPExceptionHandler(object):
environ['paste.httpexceptions'] = self
environ.setdefault('paste.expected_exceptions',
[]).append(HTTPException)
- return catch_errors_app(
- self.application, environ, start_response,
- self.send_http_response, catch=HTTPException)
-
- def send_http_response(self, environ, start_response, exc_info):
try:
- exc = exc_info[1]
- assert(isinstance(exc, HTTPException)), \
- 'send_http_response triggered via a non HTTPException'
- return exc.wsgi_application(environ, start_response, exc_info)
- finally:
- exc_info = None
+ return self.application(environ, start_response)
+ except HTTPException, exc:
+ return exc(environ, start_response)
def middleware(*args, **kw):
import warnings
diff --git a/paste/wsgilib.py b/paste/wsgilib.py
index 9960587..02dd2dc 100644
--- a/paste/wsgilib.py
+++ b/paste/wsgilib.py
@@ -227,7 +227,7 @@ def catch_errors_app(application, environ, start_response, error_callback_app,
return error_callback_app(environ, start_response, sys.exc_info())
if type(app_iter) in (list, tuple):
# These won't produce exceptions
- if ok_callback:
+ if ok_callback is not None:
ok_callback()
return app_iter
else: