我正试图用Django项目为我的表单编写测试。 我试着测试以下的书架: 表单.py在
class BookForm(ModelForm):
class Meta:
model = Book
fields = ['title', 'author', 'summary', 'tag', 'genre', 'language', 'book_format', 'read_date']
#labels =
widgets = {
'author': AddAnotherWidgetWrapper(
forms.Select,
reverse_lazy('author_form'),),
'tag': AddAnotherWidgetWrapper(
forms.SelectMultiple,
reverse_lazy('author_form'),),
}
permission_required = 'libraryapp.can_edit'
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request', None)
# print(self.request.user)
super(BookForm, self).__init__(*args, **kwargs)
我的测试_表单.py看起来像这样:
^{pr2}$我不知道它为什么不起作用。也许我忘了一些很重要的事?在
我总是得到这样的断言错误:
self.assertTrue(form.is_valid()) AssertionError: False is not true
显然,表单与您提供的数据无效。这可能是因为您传递的是
date
对象,而不是包含日期的字符串。在检查
form.errors
以获得表单无效的确切答案。在为此,可以在断言之前添加print语句。在
如果输出被测试框架吞并而没有打印到控制台,您也可以尝试调试器。添加此行:
^{pr2}$测试将在该行停止,提示
(pdb)
。输入p form.errors
以打印错误。在然后可以输入
q
退出调试器。在或者,也可以用
python manage.py shell
启动pythonshell并手动输入代码。在相关问题 更多 >
编程相关推荐