django test client 404, 301 != 200

Пишу тесты для приложения. url.py:
urlpatterns = patterns('',
(r'^forum/', include('forum.urls')),
}


forum.urls:

urlpatterns = patterns('',
(r'newtopic/(?P\d+)?$', 'forum.views.newtopic'),
(r'showtopic/(?P\d+)$', 'forum.views.showtopic'),
(r'showreplies/(?P\d+)$', 'forum.views.showreplies'),
(r'savereply/$', 'forum.views.savereply'),
(r'^$', 'forum.views.forum_list'),
)

Все конечно же работает (адреса 192.168.0.1:8000/forum/, .../forum ) Но когда пишу тесты:
from django.test import TestCase
from django.test.client import Client

class SimpleTest(TestCase):
def setUp(self):
self.client = Client()

def test_details(self):
response = self.client.get('/forum/')
self.assertEqual(response.status_code, 200)


и прогоняю их python manage.py test forum.SimpleTest
выдает TemplateDoesNotExist: 404.html
если в тесте написать
response = self.client.get('/forum') # без слэша на конце
выдает 301 != 200 ошибку.

В чем дело?
  • Вопрос задан
  • 3271 просмотр
Пригласить эксперта
Ответы на вопрос 2
frol
@frol
Линуксоид
Достаточно запустить тестовый Django-сервер и зайти на '/forum' — получите тоже 301 код, который перенаправит на '/forum/'.
Ответ написан
Комментировать
dr013
@dr013
Oracle evangelist, DevOps Team Lead
Правильно будет вот так:
response = self.client.get('/forum/', follow=True)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы