Отправка запросов json на сервер flask в pytest

#python #json #python-requests

#python #json #python-запросы

Вопрос:

Я хочу отправить json с POST-запросом на определенную конечную точку на мой сервер в pytest.

Это то, что я обычно передаю серверу с помощью curl:

 curl --header "Content-Type: application/json" --request POST --data '{"item":"ZycugK6yXdHgf8foQTUnKY.txt","method":"one"}' 0.0.0.0:5000/convert
 

И вот как я попытался воссоздать его в pytest:

    data = {"item": filename, "method": method}
   response = client.post('/convert', content_type='application/json', data=data)
 

Где имя файла и параметры метода принимаются в качестве входных данных для функции (пересылаются декоратором).

Однако я продолжаю получать a 400 - Bad Request , что означает, что я делаю что-то не так с моим запросом.

Ответ №1:

Я думаю, это сработает:

 data = {"item": filename, "method": method}
response = client.post('/convert', content_type='application/json', data=json.dumps(data))
 

Вам нужно сериализовать данные.

Ответ №2:

Это зависит от клиента, который вы используете. Например requests , вы могли бы использовать просто

 response = client.post("/convert", json=data)