Ho codice all'interno di un'applicazione Flask che utilizza JSONs nella richiesta, e posso ottenere l'oggetto JSON in questo modo:Come inviare le richieste con JSONs in unità di test
Request = request.get_json()
Ciò sta funzionando bene, tuttavia Sto provando a creare test unitari usando il modulo unittest di Python e ho difficoltà a trovare un modo per inviare un JSON con la richiesta.
response=self.app.post('/test_function',
data=json.dumps(dict(foo = 'bar')))
Questo mi dà:
>>> request.get_data()
'{"foo": "bar"}'
>>> request.get_json()
None
Flask sembra avere un argomento JSON cui è possibile impostare JSON = dict (foo = 'bar') all'interno della richiesta post, ma non so come farlo con il modulo unittest.
Che cosa significa il 'request.data' contiene? Spesso quando l'analisi di json fallisce a causa di un input sbagliato, fallisce silenziosamente e restituisce "None", quindi i dati di input non elaborati potrebbero non essere json. –
>>> request.get_data() '{ "pippo": "bar"}' >>> request.get_json() Nessuno Io non sono molto sicuro di come funziona la richiesta di pallone, ma sembra separare dati e JSON, e non riesco a capire come inviare informazioni a JSON piuttosto che ai dati, se questo ha senso. –
penso che siano le intestazioni del tipo di contenuto, prova a impostarle su appliacation/json. anche il parametro force è utile ma probabilmente non vuoi andare lì solo per far passare le unittests, meglio cambiare il mime – user3012759