Домашняя страница тестирования в Джанго возвращается 404 - PullRequest
0 голосов
/ 27 апреля 2018

Написание теста Django для проверки правильности загрузки домашней страницы. Домашняя страница моего сайта не «/», а «/ home /», а «/» и «/ home» фактически перенаправляют на «/ home /»

поэтому для этого я написал следующий набор тестов:

tests_main.py

from django.test import TestCase


class homepage_redirects(TestCase):
    def test_redirect_homepage(self):
        r1 = self.client.get('/')
        r2 = self.client.get('/home')
        self.assertEqual(r1.status_code, 301)
        self.assertEqual(r1.url, '/home/')
        self.assertEqual(r2.status_code, 301)
        self.assertEqual(r2.url, '/home/')


class homepage_loads(TestCase):
    def test_homepage(self):
        r = self.client.get('/home/')
        self.assertEqual(r.status_code, 200)

По какой-то причине homepage_redirects тесты не завершаются неудачно, но homepage_loads завершается неудачно со следующей трассировкой.

Traceback

self.assertEqual(r.status_code, 200)
AssertionError: 404 != 200

Как ни странно, если я пойду в оболочку Python Django, я должен получить код состояния 200.

Python Shell

In[1]: from django.test import Client

In[2]: c = Client()

In[3]: c.get('/home/')
Out[3]: <HttpResponse status_code=200, "text/html; charset=utf-8">

Что я делаю не так?

views.py

from django.shortcuts import render


def home_page(request):
    return render(request, 'app/home_page.html')

urls.py

from django.contrib import admin

urlpatterns = [
    path('admin/', admin.site.urls),
    path('home/', views.home_page),
]

1 Ответ

0 голосов
/ 27 апреля 2018
urlpatterns = [
    path('admin/', admin.site.urls),
    path('home/', views.home_page),
]

Вы можете добавить? в ваших URL. такие как

urlpatterns = [
    path(r'^admin/?', admin.site.urls),
    path(r'^home/?', views.home_page),
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...