Merge pull request #1360 from keyanp/issue1317
Add exception details to response
This commit is contained in:
commit
5164be092a
2 changed files with 27 additions and 1 deletions
|
|
@ -15,7 +15,6 @@ from werkzeug.exceptions import BadRequest
|
||||||
from . import json
|
from . import json
|
||||||
from .globals import _request_ctx_stack
|
from .globals import _request_ctx_stack
|
||||||
|
|
||||||
|
|
||||||
_missing = object()
|
_missing = object()
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -175,6 +174,9 @@ class Request(RequestBase):
|
||||||
|
|
||||||
.. versionadded:: 0.8
|
.. versionadded:: 0.8
|
||||||
"""
|
"""
|
||||||
|
ctx = _request_ctx_stack.top
|
||||||
|
if ctx is not None and ctx.app.config.get('DEBUG', False):
|
||||||
|
raise BadRequest('Failed to decode JSON object: {0}'.format(e))
|
||||||
raise BadRequest()
|
raise BadRequest()
|
||||||
|
|
||||||
def _load_form_data(self):
|
def _load_form_data(self):
|
||||||
|
|
|
||||||
|
|
@ -49,6 +49,30 @@ class TestJSON(object):
|
||||||
assert rv.mimetype == 'application/json'
|
assert rv.mimetype == 'application/json'
|
||||||
assert flask.json.loads(rv.data)['x'] == http_date(d.timetuple())
|
assert flask.json.loads(rv.data)['x'] == http_date(d.timetuple())
|
||||||
|
|
||||||
|
def test_post_empty_json_adds_exception_to_response_content_in_debug(self):
|
||||||
|
app = flask.Flask(__name__)
|
||||||
|
app.config['DEBUG'] = True
|
||||||
|
@app.route('/json', methods=['POST'])
|
||||||
|
def post_json():
|
||||||
|
flask.request.get_json()
|
||||||
|
return None
|
||||||
|
c = app.test_client()
|
||||||
|
rv = c.post('/json', data=None, content_type='application/json')
|
||||||
|
assert rv.status_code == 400
|
||||||
|
assert b'Failed to decode JSON object' in rv.data
|
||||||
|
|
||||||
|
def test_post_empty_json_wont_add_exception_to_response_if_no_debug(self):
|
||||||
|
app = flask.Flask(__name__)
|
||||||
|
app.config['DEBUG'] = False
|
||||||
|
@app.route('/json', methods=['POST'])
|
||||||
|
def post_json():
|
||||||
|
flask.request.get_json()
|
||||||
|
return None
|
||||||
|
c = app.test_client()
|
||||||
|
rv = c.post('/json', data=None, content_type='application/json')
|
||||||
|
assert rv.status_code == 400
|
||||||
|
assert b'Failed to decode JSON object' not in rv.data
|
||||||
|
|
||||||
def test_json_bad_requests(self):
|
def test_json_bad_requests(self):
|
||||||
app = flask.Flask(__name__)
|
app = flask.Flask(__name__)
|
||||||
@app.route('/json', methods=['POST'])
|
@app.route('/json', methods=['POST'])
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue