From 5e9dd279c16f5d2eb5a6e53f869ffc379672f490 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Tue, 15 Oct 2013 11:42:16 +0200 Subject: [PATCH] [IMP] sensible implementation of set_request bzr revid: xmo@openerp.com-20131015094216-sgsfukzndfpu8kss --- addons/web/http.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/addons/web/http.py b/addons/web/http.py index 22b5522fa22..96b7275343d 100644 --- a/addons/web/http.py +++ b/addons/web/http.py @@ -471,18 +471,20 @@ from werkzeug.local import LocalStack _request_stack = LocalStack() -def set_request(request): - class with_obj(object): - def __enter__(self): - _request_stack.push(request) - def __exit__(self, *args): - _request_stack.pop() - return with_obj() +@contextlib.contextmanager +def set_request(req): + _request_stack.push(req) + try: + yield + finally: + _request_stack.pop() + + +request = _request_stack() """ A global proxy that always redirect to the current request object. """ -request = _request_stack() #---------------------------------------------------------- # Controller registration with a metaclass