Написание теста 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),
]