forked from orbit-oss/flask
set description for trap as well as debug
test for key error description
This commit is contained in:
parent
045dccaefb
commit
42905b8a55
2 changed files with 8 additions and 3 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue