<HttpResponseNotFound status_code=404, "text/html"> в django-test

Я новичок в модульном тестировании и пытался протестировать метод GET карточной игры, которую я создал.

Мой тест-кейс следующий:

def test_rooms(self):
    c = APIClient()
    room_id = PokerRoom.objects.get(name='planning').id
    request = c.get('http://127.0.0.1:8000/room/{}'.format(room_id))
    print(request)

Идентификатор является UUID, поэтому я использую метод room_id.

Мой url:

    path('room/<int:pk>', room),

где room - метод @api_view(['GET']), а pk - id комнаты. Но когда я пытаюсь протестировать это, возникает ошибка:

<HttpResponseNotFound status_code=404, "text/html">

Проверил, существует ли комната в тестовой базе данных, и она существует, теперь я не знаю, что происходит. Может ли кто-нибудь помочь мне?

Можете ли вы добавить больше деталей к вашему коду выше, например, как был создан набор тестов, как настроены данные и т.д.? Одна проблема, которую я сразу же заметил, заключается в том, как выполняется запрос. Почему вы используете полный URL? Если вы используете клиент API для тестирования Django/DRF, вы должны использовать URL пути представления вместо полного URL.

Ссылка: https://docs.djangoproject.com/en/4.0/topics/testing/tools/#overview-and-a-quick-example

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