测试form.is_valid是否有效的最聪明方法?

时间:2019-04-17 05:13:32

标签: django django-testing

寻找一种测试属于有效形式的视图一部分的好方法:

Views.py:

def calendar_request(request):
    form = create_event(request.POST)
    if form.is_valid():
         date = request.POST['date']
         time = request.POST['time']
         return HttpResponseRedirect(request.path)
    else:
         print('Form not valid')

所以我检查了表格在我的tests.py中是否有效:

 def test_form_valid_request(self):
    date = '2019-04-16'
    time = '14:00'
    form_data = {'date':date,
                 'time':time,}
    form = create_event(data=form_data)
    self.assertTrue(form.is_valid)

效果很好。因此,我继续在测试函数中添加了以下几行:

   response = client.get(reverse('test_form'), form_data)
   self.assertEqual(response.status_code, 200)

让我感到困惑的是,AssertTrue(form.is_valid)在测试期间可以工作,但是在我的控制台中我总是得到打印信息(“表单无效”)。

如果form.is_valid,如何在视图中测试零件?

1 个答案:

答案 0 :(得分:1)

assertTrue(expr, msg=None)检查 bool(x) is True ,而不检查 x is True

因此,您应该已经调用了函数(使用括号)

self.assertTrue(form.is_valid())
                             ^^ here