Browse Source

Use `content_type` kwarg instead of manipulating headers

reviewable/pr1984/r1
Adam Byrtek 10 years ago committed by Markus Unterwaditzer
parent
commit
6c5ef2bc5c
  1. 8
      flask/testing.py
  2. 1
      tests/test_testing.py

8
flask/testing.py

@ -35,16 +35,14 @@ def make_test_environ_builder(app, path='/', base_url=None, json=None, *args, **
if url.query: if url.query:
path += '?' + url.query path += '?' + url.query
if json: if json is not None:
if 'data' in kwargs: if 'data' in kwargs:
raise RuntimeError('Client cannot provide both `json` and `data`') raise RuntimeError('Client cannot provide both `json` and `data`')
kwargs['data'] = json_dumps(json) kwargs['data'] = json_dumps(json)
# Only set Content-Type when not explicitly provided # Only set Content-Type when not explicitly provided
if 'Content-Type' not in kwargs.get('headers', {}): if 'content_type' not in kwargs:
new_headers = kwargs.get('headers', {}).copy() kwargs['content_type'] = 'application/json'
new_headers['Content-Type'] = 'application/json'
kwargs['headers'] = new_headers
return EnvironBuilder(path, base_url, *args, **kwargs) return EnvironBuilder(path, base_url, *args, **kwargs)

1
tests/test_testing.py

@ -215,6 +215,7 @@ def test_json_request():
json_data = {'drink': {'gin': 1, 'tonic': True}, 'price': 10} json_data = {'drink': {'gin': 1, 'tonic': True}, 'price': 10}
rv = c.post('/api', json=json_data) rv = c.post('/api', json=json_data)
assert rv.status_code == 200 assert rv.status_code == 200
assert flask.request.is_json
assert flask.request.get_json() == json_data assert flask.request.get_json() == json_data
def test_subdomain(): def test_subdomain():

Loading…
Cancel
Save