Проблема с подражанием возвращаемому значению в тесте 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

Что я могу делать неправильно?

Вернуться на верх