【发布时间】:2018-11-10 13:41:49
【问题描述】:
在我的应用程序中,我在 RegisterForm 中扩展了 UserCreationForm,并且我正在尝试测试如果密码 1 不等于密码 2,注册表是否返回 ValidationError。在每次测试尝试中,我都收到了AssertionError: ValidationError not raised。
class RegisterViewTestCase(TestCase):
def setUp(self):
self.bad_data = {
'email': self.email,
'password1': 'valid_password1',
'password2': 'valid_password2'
}
def test_register_registers_invalid_data(self):
form = RegisterForm(self.bad_data)
self.assertFalse(form.is_valid())
with self.assertRaises(ValidationError):
form.full_clean()
forms.py
class RegisterForm(UserCreationForm):
class Meta:
model = CustomUser
fields = ['email']
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['email'].widget.attrs.update({'autofocus': True})
任何线索为什么它没有通过测试?
【问题讨论】:
-
self.bad_data是什么?我只看到self.data -
对不起,我编辑了:D
-
您也可以添加您的表单吗?
-
已添加,查看
-
您的代码看起来不错。请尝试在您的
RegisterForm类中添加一个clean_password2,该类执行 super().clean_password2() 但这不是必需的...
标签: django django-forms django-testing