I have code within a Flask application that uses JSONs in the request, and I can get the JSON object like so:
Request = request.get_json()
This has been working fine, however I am trying to create unit tests using Python’s unittest module and I’m having difficulty finding a way to send a JSON with the request.
response=self.app.post('/test_function', data=json.dumps(dict(foo = 'bar')))
This gives me:
>>> request.get_data() '{"foo": "bar"}' >>> request.get_json() None
Flask seems to have a JSON argument where you can set json=dict(foo=’bar’) within the post request, but I don’t know how to do that with the unittest module.
Advertisement
Answer
Changing the post to
response=self.app.post('/test_function', data=json.dumps(dict(foo='bar')), content_type='application/json')
fixed it.
Thanks to user3012759.