Skip to content

Commit

Permalink
tests
Browse files Browse the repository at this point in the history
  • Loading branch information
nitely committed Dec 15, 2018
1 parent ebcb138 commit eed1e3e
Show file tree
Hide file tree
Showing 2 changed files with 110 additions and 10 deletions.
36 changes: 26 additions & 10 deletions spirit/user/auth/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,12 @@ class RegistrationForm(CleanEmailMixin, forms.ModelForm):
max_length=254,
help_text=_("Enter the same email as above, for verification."))
# todo: add password validator for Django 1.9
password = forms.CharField(label=_("Password"), widget=forms.PasswordInput)
honeypot = forms.CharField(label=_("Leave blank"), required=False)
password = forms.CharField(
label=_("Password"),
widget=forms.PasswordInput)
honeypot = forms.CharField(
label=_("Leave blank"),
required=False)

class Meta:
model = User
Expand All @@ -37,7 +41,8 @@ def clean_honeypot(self):
value = self.cleaned_data["honeypot"]

if value:
raise forms.ValidationError(_("Do not fill this field."))
raise forms.ValidationError(
_("Do not fill this field."))

return value

Expand All @@ -52,7 +57,8 @@ def clean_username(self):
.filter(username=username)
.exists())
if is_taken:
raise forms.ValidationError(_("The username is taken."))
raise forms.ValidationError(
_("The username is taken."))

return username

Expand All @@ -77,7 +83,9 @@ def save(self, commit=True):

class LoginForm(AuthenticationForm):

username = forms.CharField(label=_("Username or Email"), max_length=254)
username = forms.CharField(
label=_("Username or Email"),
max_length=254)

def __init__(self, *args, **kwargs):
super(LoginForm, self).__init__(*args, **kwargs)
Expand Down Expand Up @@ -116,7 +124,8 @@ def _validate_username(self):
return

raise forms.ValidationError(
_("No account matches %(username)s.") % {'username': username})
_("No account matches %(username)s.") % {
'username': username})

def clean(self):
self._validate_username()
Expand All @@ -125,7 +134,10 @@ def clean(self):

class ResendActivationForm(forms.Form):

email = forms.CharField(label=_("Email"), widget=forms.EmailInput, max_length=254)
email = forms.CharField(
label=_("Email"),
widget=forms.EmailInput,
max_length=254)

def clean_email(self):
email = self.cleaned_data["email"]
Expand All @@ -138,15 +150,19 @@ def clean_email(self):
.filter(email=email)
.exists())
if not is_existent:
raise forms.ValidationError(_("The provided email does not exists."))
raise forms.ValidationError(
_("The provided email does not exists."))

self.user = (
User.objects
.filter(email=email, st__is_verified=False)
.filter(
email=email,
st__is_verified=False)
.order_by('-pk')
.first())
if not self.user:
raise forms.ValidationError(_("This account is verified, try logging-in."))
raise forms.ValidationError(
_("This account is verified, try logging-in."))

return email

Expand Down
84 changes: 84 additions & 0 deletions spirit/user/auth/tests/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,58 @@ def test_login_redirect(self):
response = self.client.get(reverse('spirit:user:auth:login') + '?next=/fakepath/')
self.assertRedirects(response, '/fakepath/', status_code=302, target_status_code=404)

@override_settings(ST_CASE_INSENSITIVE_EMAILS=True)
def test_login_email_case_insensitive(self):
"""
try to login by email
"""
self.assertNotEqual(
self.user.email, self.user.email.upper())
form_data = {
'username': self.user.email.upper(),
'password': "bar"}
response = self.client.post(
reverse('spirit:user:auth:login'), form_data)
expected_url = reverse('spirit:user:update')
self.assertRedirects(response, expected_url, status_code=302)

@override_settings(ST_CASE_INSENSITIVE_EMAILS=False)
def test_login_email_case_insensitive_off(self):
"""
try to login by email
"""
self.assertNotEqual(
self.user.email, self.user.email.upper())
form_data = {
'username': self.user.email.upper(),
'password': "bar"}
response = self.client.post(
reverse('spirit:user:auth:login'), form_data)
self.assertEqual(response.status_code, 200)

@override_settings(ST_CASE_INSENSITIVE_USERNAMES=True)
def test_login_username_case_insensitive(self):
self.assertNotEqual(
self.user.username, self.user.username.upper())
form_data = {
'username': self.user.username.upper(),
'password': "bar"}
response = self.client.post(
reverse('spirit:user:auth:login'), form_data)
expected_url = reverse('spirit:user:update')
self.assertRedirects(response, expected_url, status_code=302)

@override_settings(ST_CASE_INSENSITIVE_USERNAMES=False)
def test_login_username_case_insensitive_off(self):
self.assertNotEqual(
self.user.username, self.user.username.upper())
form_data = {
'username': self.user.username.upper(),
'password': "bar"}
response = self.client.post(
reverse('spirit:user:auth:login'), form_data)
self.assertEqual(response.status_code, 200)

def test_register(self):
"""
register
Expand All @@ -78,6 +130,38 @@ def test_register(self):
response = self.client.get(reverse('spirit:user:auth:register'))
self.assertRedirects(response, reverse('spirit:user:update'), status_code=302)

@override_settings(ST_CASE_INSENSITIVE_USERNAMES=True)
def test_register_username_case_insensitive(self):
form_data = {
'username': 'UnIqUeFoO',
'email': 'some@some.com',
'email2': 'some@some.com',
'password': 'pass'}
response = self.client.post(
reverse('spirit:user:auth:register'), form_data)
expected_url = reverse('spirit:user:auth:login')
self.assertRedirects(response, expected_url, status_code=302)
self.assertTrue(
User.objects.filter(username='uniquefoo').exists())
self.assertFalse(
User.objects.filter(username='UnIqUeFoO').exists())

@override_settings(ST_CASE_INSENSITIVE_USERNAMES=False)
def test_register_username_case_insensitive_off(self):
form_data = {
'username': 'UnIqUeFoO',
'email': 'some@some.com',
'email2': 'some@some.com',
'password': 'pass'}
response = self.client.post(
reverse('spirit:user:auth:register'), form_data)
expected_url = reverse('spirit:user:auth:login')
self.assertRedirects(response, expected_url, status_code=302)
self.assertFalse(
User.objects.filter(username='uniquefoo').exists())
self.assertTrue(
User.objects.filter(username='UnIqUeFoO').exists())

def test_register_email_sent(self):
"""
register and send activation email
Expand Down

0 comments on commit eed1e3e

Please sign in to comment.