2015-10-05 3 views
0

Нужна помощь при покупке создала тест для кода последующего:Как метод испытания внутри класса

здесь проверенная длиной пароля, если вы пытаетесь изменить, и хотят создал два теста, где проходят new_password1 ти длина> = 5 и Len < 5.

#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 и назначить cumstom слово позже сделать Assert.

#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 

ответ

0

это мое испытание и работает, если кто-то может внести свой вклад с входом я был бы признателен

class test_password(unittest.TestCase): 
    """ Contiene los test para la funcionalidad de contraseña. 
    """ 
    def test_success_password(self): 
     mock_render = mock.MagicMock() 
     mock_request = mock.MagicMock() 
     with mock.patch.multiple('interface.views', render=mock_render): 
      from interface.views import success_password 
      success_password(mock_request) 
      context = mock_render.call_args[0][2] 
      self.assertEqual(context['message']['data'], 
          'Cambio exitoso de contrase\xc3\xb1a') 

    def test_len_password_true(self): 
     """llamado al método de validación debe devolver la misma 
     contraseña. 
     """ 
     mock_auth_form = mock.MagicMock() 
     from interface.forms import ValidatingPasswordChangeForm 
     form = ValidatingPasswordChangeForm(mock_auth_form) 
     form.cleaned_data = {'new_password1': 'hola5'} 
     self.assertEquals(form.clean_new_password1(), 'hola5') 

    def test_len_password_error(self): 
     """llamado al método de validación con una contraseña, de menos de 5 
     caracteres, debe levantar un error de validación. 
     """ 
     mock_auth_form = mock.MagicMock() 
     from interface.forms import ValidatingPasswordChangeForm 
     form = ValidatingPasswordChangeForm(mock_auth_form) 
     form.cleaned_data = {'new_password1': 'hol4'} 
     with self.assertRaises(forms.ValidationError): 
      form.clean_new_password1() 
Смежные вопросы