From 0d1e9c1fcfc50f3c600fa4ad1e22d3e5c3ec91c4 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Mon, 6 Sep 2010 00:45:10 +0000 Subject: - Process the response callbacks and the NewResponse event earlier, to enable mutations to the response to take effect. --- repoze/bfg/router.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'repoze') diff --git a/repoze/bfg/router.py b/repoze/bfg/router.py index 277ee559b..f976dfea2 100644 --- a/repoze/bfg/router.py +++ b/repoze/bfg/router.py @@ -144,6 +144,13 @@ class Router(object): attrs['exception'] = why response = view_callable(why, request) + # process the response + + if request.response_callbacks: + request._process_response_callbacks(response) + + has_listeners and registry.notify(NewResponse(request, response)) + try: headers = response.headerlist app_iter = response.app_iter @@ -153,12 +160,6 @@ class Router(object): 'Non-response object returned from view named %s ' '(and no renderer): %r' % (view_name, response)) - if request.response_callbacks: - request._process_response_callbacks(response) - - # process the response - has_listeners and registry.notify(NewResponse(request, response)) - start_response(status, headers) return app_iter -- cgit v1.2.3