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.data
contiene? A menudo, cuando el análisis json falla debido a una entrada incorrecta, falla silenciosamente y regresa, porNone
lo que los datos de entrada sin procesar pueden no ser json.Respuestas:
Cambiando la publicación a
arreglado.
Gracias a user3012759.
fuente
application/json
tipo de contenido.post
solicitud 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.FlaskClient
métodos lanzados por Flask 1.0 aceptanjson
argumentos yResponse.get_json
métodos agregados, vea el ejemplo .para Flask 0.x puede usar el recibo a continuación:
fuente
dict
cadena JSON!