Реверс Джанго не найден при юнит-тестировании - PullRequest
1 голос
/ 06 ноября 2019

Я пишу юнит-тесты для приложения Django. Приложение работает как положено. Однако один из новых тестов не пройден, потому что система не может найти обратное соответствие для имени представления. Чего мне не хватает?

django.urls.exceptions.NoReverseMatch: Обратное для 'video_uploader.list_videos' не найдено. 'video_uploader.list_videos' не является допустимой функцией просмотра или именем шаблона.

app / tests.py

from django.test import TestCase
from .models import Video
from .views import *
from django.db import models
from django.utils import timezone
from django.urls import reverse

class VideoTest(TestCase):

    def create_video(self, name="Test Video", creation_date=timezone.now, videofile="/video/"):
        return Video.objects.create(name=name, videofile=videofile)

    def test_video_creation(self):
        video = self.create_video()
        self.assertTrue(isinstance(video, Video))
        self.assertEqual(video.__str__(), video.name + ": " + str(video.videofile))

    def test_videos_list_view(self):
        video = self.create_video()
        url = reverse("video_uploader.list_videos")
        response = self.client.get(url)

        self.assertEqual(response.status_code, 200)
        self.assertIn(video.name, response.content)

app / urls.py

from django.urls import path

from . import views

app_name = 'video_uploader'
urlpatterns = [
    path('upload', views.upload_video, name='upload_video'),
    path('', views.list_videos, name='list_videos'),
]

1 Ответ

1 голос
/ 06 ноября 2019

Между именем приложения и именем URL-адреса должно быть :, а не .. Попробуйте с:

url = reverse("video_uploader:list_videos")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...