From 1b77a3fb11a0819114804e4f88233b2dc215b653 Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Wed, 7 May 2014 22:26:50 +0200 Subject: [PATCH] Made errors for working outside of contexts clearer. --- flask/globals.py | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/flask/globals.py b/flask/globals.py index fecbfc10..03c2f277 100644 --- a/flask/globals.py +++ b/flask/globals.py @@ -14,24 +14,41 @@ from functools import partial from werkzeug.local import LocalStack, LocalProxy +_request_ctx_err_msg = '''\ +Working outside of request context. + +This typically means that you attempted to use functionality that needed +an active HTTP request. Consult the documentation on testing for +information about how to avoid this problem.\ +''' +_app_ctx_err_msg = '''\ +Working outside of application context. + +This typically means that you attempted to use functionality that needed +to interface with the current application object in a way. To solve +this set up an application context with app.app_context(). See the +documentation for more information.\ +''' + + def _lookup_req_object(name): top = _request_ctx_stack.top if top is None: - raise RuntimeError('working outside of request context') + raise RuntimeError(_request_ctx_err_msg) return getattr(top, name) def _lookup_app_object(name): top = _app_ctx_stack.top if top is None: - raise RuntimeError('working outside of application context') + raise RuntimeError(_app_ctx_err_msg) return getattr(top, name) def _find_app(): top = _app_ctx_stack.top if top is None: - raise RuntimeError('working outside of application context') + raise RuntimeError(_app_ctx_err_msg) return top.app