在Django中测试重定向(并检查消息)

时间:2019-11-09 15:32:45

标签: python django testing redirect django-views

我有一个重定向的视图,我想检查消息。

我发现了其他类似问题,我读到我应该使用follow=True

我是一名初学者,所以也许我想念一些东西,但是我没有使用客户端进行测试,所以我无法使用Follow(或者无论如何我都不知道在哪里使用它)。

因此,我怀疑我是否以正确的方式行事,以及是否可以测试消息。

这是我要测试的代码

# my view
def ImportName(request):
    if request.method == 'POST':
    # code
    else:
        messages.add_message(request, messages.ERROR,
                             _('Form non valida.'), extra_tags='import_name')
        return redirect('lists:addname')

# my test
def test_importname(self):
    self.request = RequestFactory(spec=NameForm)
    # test a not POST call
    self.request.method = 'GET'
    self.request._messages = Mock()
    resposte = ImportName(self.request)
    resposte.client = Client()
    self.assertEqual(resposte.status_code, 302)
    self.assertRedirects(resposte, reverse('lists:addname'))

就像您看到我需要来定义属性_messages.client一样,所以可能有更好的方法可以做,但是我这样测试了所有视图(使用{ {1}}),直到我收到消息为止,一切正常。

响应没有上下文,因此我不知道在哪里检查消息。

建议,意见,解决方案?谢谢

0 个答案:

没有答案