Flask возвращает правильный объект списка для тестирования в Postman
в настоящее время я делаю кое-какую работу для школы;
У меня есть приложение flask и несколько тестов postman, которые я должен пройти, один из которых запрашивает массив dicts (что-то вроде [{dict1}, {dict1},...])
ive was trying to return this:
result = [{
"reservationUid": data["reservationUid"],
"status": data["status"],
"startDate": data["startDate"],
"tillDate": data["tillDate"],
"book": book_data,
"library": library_data
}]
ive used jsonify()
, dumps() + mimetype='application/json'
, make_response()
, but nothing really helped, it seems like if i do so, postman wont count that as json but as undefined?
например, для return Response(dumps(result), mimetype='application/json')
возвращается TypeError: Cannot read property 'status' of undefined
вот часть теста, где он умирает:
const response = pm.response.json();
pm.expect(response).to.be.an("array")
const reservation = _.find(response, { "reservationUid": reservationUid })
pm.expect(reservation.status).to.be.eq("RENTED")
pm.expect(reservation.startDate).to.be.not.undefined
pm.expect(reservation.tillDate).to.be.not.undefined
тогда мои возвращаемые данные ответа выглядят как
[
{
"reservationUid": "f464ca3a-fcf7-4e3f-86f0-76c7bba96f72",
"status": "RENTED",
"startDate": "2021-10-09",
"tillDate": "2021-10-11",
... <some more data here>
}
]
в основном статус на самом деле "RENTED", как и требуется.
Для приложений django, которые возвращают данные сериализаторов с полем many=True, такие тесты работают просто отлично, но поскольку вы не можете просто вернуть массив во flask, это становится так сложно :(
)Мое лучшее решение - перенаправить мои запросы в приложение django, но есть ли способ вернуть правильный массив json из flask? Заранее спасибо
Изменили ли вы тип содержимого вашего почтальона на:
"Content-Type": "application/json"