From 42905b8a55adf66a77b2b11797092a64b51d526e Mon Sep 17 00:00:00 2001 From: David Lord Date: Mon, 29 May 2017 19:41:07 -0700 Subject: [PATCH] set description for trap as well as debug test for key error description --- flask/app.py | 4 ++-- tests/test_basic.py | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/flask/app.py b/flask/app.py index 6ddf6ca9..faf36029 100644 --- a/flask/app.py +++ b/flask/app.py @@ -1583,9 +1583,9 @@ class Flask(_PackageBoundObject): # MultiDict passes the key to the exception, but that's ignored # when generating the response message. Set an informative - # description for key errors in debug mode. + # description for key errors in debug mode or when trapping errors. if ( - self.debug + self.debug or self.config['TRAP_BAD_REQUEST_ERRORS'] and isinstance(e, BadRequestKeyError) # only set it if it's still the default description and e.description is BadRequestKeyError.description diff --git a/tests/test_basic.py b/tests/test_basic.py index 895f4f30..c494e8bd 100644 --- a/tests/test_basic.py +++ b/tests/test_basic.py @@ -975,12 +975,17 @@ def test_trapping_of_bad_request_key_errors(app, client): def fail(): flask.request.form['missing_key'] - assert client.get('/fail').status_code == 400 + rv = client.get('/fail') + assert rv.status_code == 400 + assert b'missing_key' not in rv.data app.config['TRAP_BAD_REQUEST_ERRORS'] = True + with pytest.raises(KeyError) as e: client.get("/fail") + assert e.errisinstance(BadRequest) + assert 'missing_key' in e.value.description def test_trapping_of_all_http_exceptions(app, client):