How to send requests with JSONs in unit tests

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.

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.

From: stackoverflow.com/q/28836893

Back to homepage or read more recommendations: