Commit 92bff1da93cdf5e7b05cfc341b6af595f0afb65c

Authored by Sergio Oliveira
1 parent e9631d3c

Added test cases

colab/accounts/tests/test_forms.py
... ... @@ -6,16 +6,54 @@ Objective: Test parameters, and behavior.
6 6 import datetime
7 7 from mock import patch
8 8  
9   -from django.test import TestCase
  9 +from django.test import TestCase, override_settings
10 10 from django.core.urlresolvers import reverse
11 11  
12 12 from colab.accounts.forms import UserCreationForm, UserChangeForm,\
13   - UserUpdateForm, UserForm, get_lists_choices
  13 + UserUpdateForm, UserForm, get_lists_choices, SetPasswordForm
14 14 from colab.accounts import forms as accounts_forms
15 15 from colab.accounts.models import User
16 16 from colab.accounts.utils import mailman
17 17  
18 18  
  19 +class SetPasswordFormTestCase(TestCase):
  20 +
  21 + TEST_COLAB_APPS = {
  22 + 'test_plugin': {
  23 + 'password_validators': (
  24 + 'colab.accounts.tests.utils.password_validator',
  25 + )
  26 + }
  27 + }
  28 +
  29 + @property
  30 + def user(self):
  31 + return User.objects.create_user(username='test_user',
  32 + email='test@example.com')
  33 +
  34 + @property
  35 + def valid_form_data(self):
  36 + return {'new_password1': '12345',
  37 + 'new_password2': '12345'}
  38 +
  39 + def test_no_custom_validators(self):
  40 + form = SetPasswordForm(self.user, data=self.valid_form_data)
  41 + self.assertTrue(form.is_valid(), True)
  42 +
  43 + @override_settings(COLAB_APPS=TEST_COLAB_APPS)
  44 + @patch('colab.accounts.tests.utils.password_validator')
  45 + def test_custom_validator(self, validator):
  46 + form = SetPasswordForm(self.user, data=self.valid_form_data)
  47 + self.assertTrue(form.is_valid())
  48 + validator.assert_called_with('12345')
  49 +
  50 + @override_settings(COLAB_APPS=TEST_COLAB_APPS)
  51 + def test_custom_validator_raise_error(self):
  52 + form = SetPasswordForm(self.user, data=self.valid_form_data)
  53 + self.assertFalse(form.is_valid())
  54 + self.assertEqual(form.errors['new_password1'][0], 'Test error')
  55 +
  56 +
19 57 class FormTest(TestCase):
20 58  
21 59 def setUp(self):
... ...
colab/accounts/tests/utils.py 0 → 100644
... ... @@ -0,0 +1,6 @@
  1 +
  2 +from django.forms import ValidationError
  3 +
  4 +def password_validator(password):
  5 + raise ValidationError('Test error')
  6 +
... ...