Django Test - django.urls.exceptions.NoReverseMatch

У меня возникают ошибки при выполнении тестов

django.urls.exceptions.NoReverseMatch: Reverse for 'interfacegraph' with no arguments not found. 1 pattern(s) tried: ['interfacegraph/(?P<device>[A-Z0-9.]{12,15})/(?P<interface>\\d+)/(?P<graph>\\d+)/graph/']

Вот urls.py

 urlpatterns = [
        re_path(r'interfacegraph/(?P<device>[A-Z0-9.]{12,15})/(?P<interface>\d+)/(?P<graph>\d+)/graph',
        InterfaceGraphViewSet.as_view({'get': 'graph'}), name='interfacegraph'),
 ]

Вот строка кода в тестах, где тест выбрасывает ошибки

    response = self.client.get(
        reverse('interfacegraph'), {'device': 'device', 'interface': 'interface', 'graph': 'traffic'},
        content_type='application/json')

Набор представлений расширяет generics viewset

  class InterfaceGraphViewSet(viewsets.GenericViewSet):
   

Есть идеи, как это проверить?

На самом деле вы не передаете аргументы в обратную функцию. Используйте ее таким образом:

reverse('interfacegraph', kwargs={'device': 'device', 'interface': 'interface', 'graph': 'traffic'})

Также другая проблема здесь:

(?P<device>[A-Z0-9.]{12,15})

Вы передаете 'device', что не соответствует данному регексу. Он проверяет заглавные буквы и цифры, поэтому в данной строке у вас есть ровно 0 случаев. Узнайте о regex. Вы также можете не использовать его вообще, например:

path('interfacegraph/<str:device>/<int:interface>/<int:graph>/graph', ...)
Вернуться на верх