diff --git a/flask/app.py b/flask/app.py index 63faa5e2..9dfc3783 100644 --- a/flask/app.py +++ b/flask/app.py @@ -1485,8 +1485,8 @@ class Flask(_PackageBoundObject): context it would also be called when you pop a request context. When a teardown function was called because of an unhandled exception - it will be passed an error object. Note that if a :meth:`errorhandler` - is registered, it will handle the exception and the teardown will not + it will be passed an error object. If an :meth:`errorhandler` is + registered, it will handle the exception and the teardown will not receive it. The return values of teardown functions are ignored. diff --git a/tests/test_appctx.py b/tests/test_appctx.py index bf3474e9..fc2f6b13 100644 --- a/tests/test_appctx.py +++ b/tests/test_appctx.py @@ -97,13 +97,10 @@ def test_app_tearing_down_with_handled_exception_by_except_block(app): assert cleanup_stuff == [None] -def test_app_tearing_down_with_handled_exception_by_app_handler(app): +def test_app_tearing_down_with_handled_exception_by_app_handler(app, client): + app.config['PROPAGATE_EXCEPTIONS'] = True cleanup_stuff = [] - class AppConfig(): - PROPAGATE_EXCEPTIONS = True - app.config.from_object(AppConfig()) - @app.teardown_appcontext def cleanup(exception): cleanup_stuff.append(exception) @@ -116,20 +113,16 @@ def test_app_tearing_down_with_handled_exception_by_app_handler(app): def handler(f): return flask.jsonify(str(f)) - test_client = app.test_client() with app.app_context(): - test_client.get('/') + client.get('/') assert cleanup_stuff == [None] -def test_app_tearing_down_with_unhandled_exception(app): +def test_app_tearing_down_with_unhandled_exception(app, client): + app.config['PROPAGATE_EXCEPTIONS'] = True cleanup_stuff = [] - class AppConfig(): - PROPAGATE_EXCEPTIONS = True - app.config.from_object(AppConfig()) - @app.teardown_appcontext def cleanup(exception): cleanup_stuff.append(exception) @@ -138,10 +131,9 @@ def test_app_tearing_down_with_unhandled_exception(app): def index(): raise Exception('dummy') - test_client = app.test_client() with pytest.raises(Exception): with app.app_context(): - test_client.get('/') + client.get('/') assert len(cleanup_stuff) == 1 assert isinstance(cleanup_stuff[0], Exception)