UPD: improved tests.
This commit is contained in:
@@ -2,14 +2,16 @@
|
||||
from unittest import skip
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.core import mail as django_mail
|
||||
from django.utils.translation import ugettext
|
||||
|
||||
from dav_base.tests.generic import FormDataSet, FormsTestCase
|
||||
|
||||
from ..forms import LoginForm, SetPasswordForm, ResetPasswordForm
|
||||
|
||||
TEST_USERNAME = 'root@localhost'
|
||||
TEST_PASSWORD = 'mellon12'
|
||||
TEST_PASSWORD = u'me||ön 2'
|
||||
TEST_EMAIL = TEST_USERNAME
|
||||
USERNAME_MAX_LENGTH = 254
|
||||
|
||||
|
||||
class LoginFormTestCase(FormsTestCase):
|
||||
@@ -22,42 +24,57 @@ class LoginFormTestCase(FormsTestCase):
|
||||
model = get_user_model()
|
||||
self.user = model.objects.create_user(username=TEST_USERNAME, password=TEST_PASSWORD, email=TEST_EMAIL)
|
||||
|
||||
def test_login_username_empty(self):
|
||||
def test_length(self):
|
||||
form = self.form_class()
|
||||
self.assertEqual(form.fields['username'].max_length, USERNAME_MAX_LENGTH)
|
||||
self.assertEqual(form.fields['password'].max_length, None)
|
||||
|
||||
def test_labels(self):
|
||||
form = self.form_class()
|
||||
self.assertEqual(form.fields['username'].label, ugettext(u'E-Mail-Adresse'))
|
||||
self.assertEqual(form.fields['password'].label, ugettext(u'Password'))
|
||||
|
||||
def test_required(self):
|
||||
form = self.form_class()
|
||||
self.assertTrue(form.fields['username'].required)
|
||||
self.assertTrue(form.fields['password'].required)
|
||||
|
||||
def test_username_empty(self):
|
||||
data_sets = [
|
||||
FormDataSet({'username': '', 'password': self.test_password},
|
||||
expected_errors=[('username', 'required')]),
|
||||
]
|
||||
super(LoginFormTestCase, self).test_invalid_data(data_sets=data_sets)
|
||||
|
||||
def test_login_password_empty(self):
|
||||
def test_password_empty(self):
|
||||
data_sets = [
|
||||
FormDataSet({'username': self.test_username, 'password': ''},
|
||||
expected_errors=[('password', 'required')]),
|
||||
]
|
||||
super(LoginFormTestCase, self).test_invalid_data(data_sets=data_sets)
|
||||
|
||||
def test_login_username_too_long(self):
|
||||
def test_username_too_long(self):
|
||||
data_sets = [
|
||||
FormDataSet({'username': 'u' * 255, 'password': self.test_password},
|
||||
FormDataSet({'username': 'u' * USERNAME_MAX_LENGTH + 'u', 'password': self.test_password},
|
||||
expected_errors=[('username', 'max_length')]),
|
||||
]
|
||||
super(LoginFormTestCase, self).test_invalid_data(data_sets=data_sets)
|
||||
|
||||
def test_login_invalid_username(self):
|
||||
def test_invalid_username(self):
|
||||
data_sets = [
|
||||
FormDataSet({'username': self.test_username[::-1], 'password': self.test_password},
|
||||
expected_errors=[('__all__', 'invalid_login')]),
|
||||
]
|
||||
super(LoginFormTestCase, self).test_invalid_data(data_sets=data_sets)
|
||||
|
||||
def test_login_invalid_password(self):
|
||||
def test_invalid_password(self):
|
||||
data_sets = [
|
||||
FormDataSet({'username': self.test_username, 'password': self.test_password[::-1]},
|
||||
expected_errors=[('__all__', 'invalid_login')]),
|
||||
]
|
||||
super(LoginFormTestCase, self).test_invalid_data(data_sets=data_sets)
|
||||
|
||||
def test_login_inactive_user(self):
|
||||
def test_inactive_user(self):
|
||||
self.user.is_active = False
|
||||
self.user.save()
|
||||
data_sets = [
|
||||
@@ -66,7 +83,7 @@ class LoginFormTestCase(FormsTestCase):
|
||||
]
|
||||
super(LoginFormTestCase, self).test_invalid_data(data_sets=data_sets)
|
||||
|
||||
def test_login_valid_credentials(self):
|
||||
def test_valid_credentials(self):
|
||||
data_sets = [
|
||||
FormDataSet({'username': self.test_username, 'password': self.test_password}),
|
||||
]
|
||||
@@ -83,49 +100,55 @@ class SetPasswordFormTestCase(FormsTestCase):
|
||||
model = get_user_model()
|
||||
self.user = model.objects.create_user(username=TEST_USERNAME, password=TEST_PASSWORD, email=TEST_EMAIL)
|
||||
|
||||
def test_set_password_mismatch(self):
|
||||
def test_required(self):
|
||||
form = self.form_class(user=self.user)
|
||||
self.assertTrue(form.fields['new_password'].required)
|
||||
self.assertTrue(form.fields['new_password_repeat'].required)
|
||||
self.assertFalse(form.fields['send_password_mail'].required)
|
||||
|
||||
def test_mismatch(self):
|
||||
data_sets = [
|
||||
FormDataSet({'new_password': 'mellon12', 'new_password_repeat': 'mellon13'},
|
||||
[('new_password_repeat', 'password_mismatch')]),
|
||||
]
|
||||
super(SetPasswordFormTestCase, self).test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
|
||||
def test_set_password_empty(self):
|
||||
def test_empty(self):
|
||||
data_sets = [
|
||||
FormDataSet({'new_password': '', 'new_password_repeat': ''},
|
||||
[('new_password', 'required')]),
|
||||
]
|
||||
super(SetPasswordFormTestCase, self).test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
|
||||
def test_set_password_too_short(self):
|
||||
def test_too_short(self):
|
||||
data_sets = [
|
||||
FormDataSet({'new_password': 'mellon', 'new_password_repeat': 'mellon'},
|
||||
[('new_password', 'password_too_short')]),
|
||||
]
|
||||
super(SetPasswordFormTestCase, self).test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
|
||||
def test_set_password_entirely_numeric(self):
|
||||
def test_entirely_numeric(self):
|
||||
data_sets = [
|
||||
FormDataSet({'new_password': '1357924680', 'new_password_repeat': '1357924680'},
|
||||
[('new_password', 'password_entirely_numeric')]),
|
||||
]
|
||||
super(SetPasswordFormTestCase, self).test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
|
||||
def test_set_password_too_similar(self):
|
||||
def test_too_similar(self):
|
||||
data_sets = [
|
||||
FormDataSet({'new_password': self.test_username, 'new_password_repeat': self.test_username},
|
||||
[('new_password', 'password_too_similar')]),
|
||||
]
|
||||
super(SetPasswordFormTestCase, self).test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
|
||||
def test_set_password_too_common(self):
|
||||
def test_too_common(self):
|
||||
data_sets = [
|
||||
FormDataSet({'new_password': 'password', 'new_password_repeat': 'password'},
|
||||
[('new_password', 'password_too_common')]),
|
||||
]
|
||||
super(SetPasswordFormTestCase, self).test_invalid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
|
||||
def test_set_password_valid(self):
|
||||
def test_valid(self):
|
||||
data_sets = [
|
||||
FormDataSet({'new_password': 'mellon12', 'new_password_repeat': 'mellon12'}),
|
||||
FormDataSet({'new_password': 'mellon12', 'new_password_repeat': 'mellon12', 'send_password_mail': True}),
|
||||
@@ -134,7 +157,7 @@ class SetPasswordFormTestCase(FormsTestCase):
|
||||
]
|
||||
super(SetPasswordFormTestCase, self).test_valid_data(data_sets=data_sets, form_kwargs={'user': self.user})
|
||||
|
||||
def test_set_password_save(self):
|
||||
def test_save(self):
|
||||
new_passwords = [
|
||||
u'"ä§ Mellon12'
|
||||
'mellon12' * 128,
|
||||
@@ -149,7 +172,7 @@ class SetPasswordFormTestCase(FormsTestCase):
|
||||
self.assertTrue(self.client.login(username=self.test_username, password=new_password))
|
||||
|
||||
@skip('Function is implemented in SetPasswordView instead of SetPasswordForm')
|
||||
def test_set_password_save_with_mail(self):
|
||||
def test_save_with_mail(self):
|
||||
new_passwords = [
|
||||
u'"ä§ Mellon12'
|
||||
'mellon12' * 128,
|
||||
@@ -178,5 +201,17 @@ class ResetPasswordFormTestCase(FormsTestCase):
|
||||
)
|
||||
invalid_data_sets = (
|
||||
FormDataSet({'username': ''}, expected_errors=[('username', 'required')]),
|
||||
FormDataSet({'username': 'u' * 255}, expected_errors=[('username', 'max_length')]),
|
||||
FormDataSet({'username': 'u' * USERNAME_MAX_LENGTH + 'u'}, expected_errors=[('username', 'max_length')]),
|
||||
)
|
||||
|
||||
def test_length(self):
|
||||
form = self.form_class()
|
||||
self.assertEqual(form.fields['username'].max_length, USERNAME_MAX_LENGTH)
|
||||
|
||||
def test_labels(self):
|
||||
form = self.form_class()
|
||||
self.assertEqual(form.fields['username'].label, ugettext(u'E-Mail-Adresse'))
|
||||
|
||||
def test_required(self):
|
||||
form = self.form_class()
|
||||
self.assertTrue(form.fields['username'].required)
|
||||
|
||||
Reference in New Issue
Block a user