【发布时间】:2015-10-05 21:43:02
【问题描述】:
需要为以下代码创建测试时需要帮助:
这里验证的密码长度如果您尝试更改,并希望创建两个测试,其中通过 new_password1 whith len >= 5 和 len
#forms.py
class ValidatingPasswordChangeForm(auth.forms.PasswordChangeForm):
def clean_new_password1(self):
password1 = self.cleaned_data.get('new_password1')
if len(password1) < 5:
raise forms.ValidationError("La contraseña debe tener 5 caracteres o más.")
return password1
#url.py
url(r'^password_change/$', 'django.contrib.auth.views.password_change',
{'template_name': 'interface/change_password.html',
'password_change_form': forms.ValidatingPasswordChangeForm,
'post_change_redirect': views.success_password}, name="password_change")
这是我的测试,但不知道如何模拟 password1 并分配一个自定义词以供以后进行断言。
#test
def test_len_password_true(self):
mock_password = mock.MagicMock()
mock_self = mock.MagicMock({'cleaned_data':'changos'})
with mock.patch.multiple('interface.forms.ValidatingPasswordChangeForm.clean_new_password1', password1="cosa" ):
from interface.forms import ValidatingPasswordChangeForm
ValidatingPasswordChangeForm().clean_new_password1(mock_self)
#context = mock_self.call_args[0][3]
#print context
【问题讨论】:
标签: python django unit-testing tdd