Я работаю над проектом с использованием Python (3.7) и Falsk, в котором я тестирую свой API. Для запроса POST, когда я отправляю клиенту запроса, используя test_client
с правильной полезной нагрузкой, он возвращает ошибку как:
AttributeError: объект 'Response' не имеет атрибута 'items'
Вот что я сделал до сих пор:
From view function:
if request.method == "POST":
data = request.get_json()
new_author = data['author']
new_title = data["title"]
new_sDescription = data["shortDescription"]
new_Url = data["thumbnailUrl"]
new_status = data["status"]
new_pageCount = data["pageCount"]
....
if None not in (new_author, new_title, new_Url, new_status, new_pageCount
, new_sDescription):
return f"Book with the id: {cursor.lastrowid} created successfully", 201
** Тестовое приспособление: * *
@pytest.fixture
def client():
app.config['TESTING'] = True
db_fd, app.config['DATABASE'] = tempfile.mkstemp()
with app.test_client() as client:
with app.app_context():
create_table(app.config['DATABASE'])
yield client
** Функция отправки запроса: **
def api_post_book(client):
payload = {
"author": "Someone",
"pageCount": 590,
"shortDescription": "A book from PyTest.",
"status": "PUBLISH",
"thumbnailUrl": "https://s3.amazonaws.com/AKIAJC5RLADLUMVRPFDQ.book-thumb-images/adzic.jpg",
"title": "PyTest is a Fun."
}
return client.post('/api',
data=jsonify(payload), follow_redirects=True)
** Функция для тестирования: **
def test_api_post_book(client):
resp = api_post_book(client)
assert resp.status_code == 201
Если я удалю jsonify
он возвращает другую ошибку как:
TypeError: объект 'NoneType' не имеет индекса