Eu tenho o código em um aplicativo Flask que usa JSONs na solicitação e posso obter o objeto JSON assim:
Request = request.get_json()
Isso tem funcionado bem, mas estou tentando criar testes de unidade usando o módulo de teste de unidade do Python e estou tendo dificuldade em encontrar uma maneira de enviar um JSON com a solicitação.
response=self.app.post('/test_function',
data=json.dumps(dict(foo = 'bar')))
Isso me dá:
>>> request.get_data()
'{"foo": "bar"}'
>>> request.get_json()
None
O Flask parece ter um argumento JSON onde você pode definir json = dict (foo = 'bar') dentro da solicitação de postagem, mas não sei como fazer isso com o módulo unittest.
python
json
flask
python-unittest
Sepehr Nazari
fonte
fonte
request.data
contém? Freqüentemente, quando a análise json falha devido a uma entrada errada, ela falha silenciosamente e retorna,None
portanto, os dados de entrada brutos podem não ser json.Respostas:
Alterando a postagem para
consertou.
Agradecimentos ao user3012759.
fonte
application/json
tipo de conteúdo.post
solicitação como seresp = client.post('/my/endpoint/',json=my_json_data)
você pudesse acessar os dados como bytes comresp.data
.ATUALIZAÇÃO: Como os
flask.testing.FlaskClient
métodos liberados do Flask 1.0 aceitamjson
argumentos eResponse.get_json
métodos adicionados, consulte o exemplo .para Flask 0.x você pode usar o recibo abaixo:
fonte
dict
string JSON!