断言错误:302!=200个

2024-09-30 08:29:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着在我的测试.py在

class TaskViewTests(TestCase):
    def test_task_view_with_no_task(self):
        """
        If no task exist, an appropriate message should be displayed.
        """
        userName = 'esutek'
        response = self.client.get(reverse('actuser:task',args=(userName,)))
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, "No task are available.")
        self.assertQuerysetEqual(response.context['taskList'], [])

但是它会给我这个错误信息。 我不知道为什么会这样。我只是按照教程做的。在

在actuser:任务 视图.py在

^{pr2}$

在viewmodels.py在

def get_task_list(self, userName):
    self.taskList = Task.objects.filter(executor = userName, parent_task_id=EMPTY_UUID).order_by('due_date')
    #get date now with this format 05/11
    self.dateToday = datetime.date.today()

实际上我有两个网址。。。在

这是从项目中得到的

url(r'^(?P<userName>[0-9a-zA-Z--]+)/', include('actuser.urls', namespace="actuser")),

这个是从actuser.url在

url(r'^task/$', views.task, name='task'),

Tags: nopyselfurltaskgetdateresponse
2条回答

HTTP 302表示您被重定向到其他URL。例如,如果您使用RedirectView,或者如果您忘记在请求URL的末尾写斜杠并且启用了APPEND_SLASH,那么您可以有意地执行重定向(在这种情况下,您得到的是http301而不是302)。在

结尾处需要斜线:

url(r'^(?P<userName>[0-9a-zA-Z-]+)/task/$', ...

如果视图需要登录,则可能会得到重定向。在

您需要先登录,这是一个很好的示例: Django: test failing on a view with @login_required

简要说明:

class LoginTestCase(TestCase):
    def setUp(self):
        self.client = Client()
        self.user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')

    def testLogin(self):
        self.client.login(username='john', password='johnpassword')
        response = self.client.get(reverse('testlogin-view'))
        self.assertEqual(response.status_code, 200)

相关问题 更多 >

    热门问题