Проблема с подражанием возвращаемому значению в тесте py?
У меня есть следующая пост-функция в моем представлении, и я хочу сымитировать возвращаемые значения customer.get_customer_data и customer.update_customer_data в моей тестовой функции. Однако, похоже, что только одно из подражаемых возвращаемых значений выделяется.
def post(self, request, *args, **kwargs):
try:
data = request.data
status_code, response = customer.get_customer_data(
data["customer_id"], "id,"
)
if status_code == 401:
auth.generate_new_access_token("buyer")
status_code, response = customer.get_customer_data(
data["customer_id"], "id,"
)
if status_code == 401 or status_code == 200:
id = response[0]["message"][0]["id"]
status_code, response = customer.update_customer_data(id, data)
tests.py
@patch("app.views.customer.get_customer_data")
@patch("app.views.customer.update_customer_data")
def test_customer_view(self, mock_customer_data, mock_update_customer_data):
customer_update_data = {
....
}
mock_customer_data.return_value = 200, [{"message": [{"id": 1234}]}]
mock_update_customer_data.return_value = 200, 'Success'
req = RequestFactory().post("/app/customer/create/", customer_update_data,
content_type='application/json')
resp = views.EditCustomerView.as_view()(req)
resp.render()
assert json.loads(resp.content) == "Success"
assert mock_customer_data.called
assert resp.status_code == 200
При запуске теста я получаю следующую ошибку
id = response[0]["message"][0]["id"]
TypeError: индексы строк должны быть целыми числами
Похоже, что эта функция вызывается не для той функции. Она исправляется функцией get_customer_data вместо update_customer_data
Что я могу делать неправильно?