Tengo un código dentro de una aplicación Flask que usa JSON en la solicitud, y puedo obtener el objeto JSON así:
Request = request.get_json()
Esto ha funcionado bien, sin embargo, estoy tratando de crear pruebas unitarias usando el módulo unittest de Python y tengo dificultades para encontrar una manera de enviar un JSON con la solicitud.
response=self.app.post('/test_function',
data=json.dumps(dict(foo = 'bar')))
Esto me da:
>>> request.get_data()
'{"foo": "bar"}'
>>> request.get_json()
None
Flask parece tener un argumento JSON en el que puede establecer json = dict (foo = 'bar') dentro de la solicitud de publicación, pero no sé cómo hacerlo con el módulo unittest.
python
json
flask
python-unittest
Sepehr Nazari
fuente
fuente

request.datacontiene? A menudo, cuando el análisis json falla debido a una entrada incorrecta, falla silenciosamente y regresa, porNonelo que los datos de entrada sin procesar pueden no ser json.Respuestas:
Cambiando la publicación a
arreglado.
Gracias a user3012759.
fuente
application/jsontipo de contenido.postsolicitud comoresp = client.post('/my/endpoint/',json=my_json_data)si pudiera acceder a los datos como bytes conresp.data.ACTUALIZACIÓN: Dado que los
flask.testing.FlaskClientmétodos lanzados por Flask 1.0 aceptanjsonargumentos yResponse.get_jsonmétodos agregados, vea el ejemplo .para Flask 0.x puede usar el recibo a continuación:
fuente
dictcadena JSON!