From de8b4cdcb918291c210aa0ce3cf7bf10e99de716 Mon Sep 17 00:00:00 2001 From: Lucas Moura Date: Tue, 29 Sep 2015 11:45:12 -0300 Subject: [PATCH] Added tests for username regex --- colab/accounts/forms.py | 3 ++- colab/accounts/models.py | 6 ------ colab/accounts/tests/test_forms.py | 22 +++++++++++++++++----- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/colab/accounts/forms.py b/colab/accounts/forms.py index 58668d2..68a11e2 100644 --- a/colab/accounts/forms.py +++ b/colab/accounts/forms.py @@ -187,6 +187,7 @@ class UserCreationForm(UserForm): error_messages={ 'invalid': _(("This value may contain only" " letters and numbers."))}) + password1 = forms.CharField(label=_("Password"), widget=forms.PasswordInput) password2 = forms.CharField(label=_("Password confirmation"), @@ -250,7 +251,7 @@ class UserCreationForm(UserForm): class UserChangeForm(forms.ModelForm): username = forms.RegexField( - label=_("Username"), max_length=30, regex=r"^[\w*]", + label=_("Username"), max_length=30, regex=r'^[\w.@+-]+$', help_text=_("Required. 30 characters or fewer. Letters and digits."), error_messages={ 'invalid': _("This value may contain only letters and numbers.")}) diff --git a/colab/accounts/models.py b/colab/accounts/models.py index 264adea..1ec03d4 100644 --- a/colab/accounts/models.py +++ b/colab/accounts/models.py @@ -4,7 +4,6 @@ import urlparse from django.db import models from django.contrib.auth.models import AbstractUser, UserManager -from django.core import validators from django.core.urlresolvers import reverse from django.utils.crypto import get_random_string from django.utils.translation import ugettext_lazy as _ @@ -77,8 +76,3 @@ User._meta.get_field('email')._unique = True User._meta.get_field('username').help_text = _( u'Required. 30 characters or fewer. Letters and digits.' ) -User._meta.get_field('username').validators[0] = validators.RegexValidator( - r'^\w+$', - _('Enter a valid username.'), - 'invalid' -) diff --git a/colab/accounts/tests/test_forms.py b/colab/accounts/tests/test_forms.py index 757d83b..232130b 100644 --- a/colab/accounts/tests/test_forms.py +++ b/colab/accounts/tests/test_forms.py @@ -24,26 +24,38 @@ class FormTest(TestCase): user.last_name = "COLAB" user.save() - def create_form_data(self): - form_data = {'email': 'usertest@colab.com.br', + def create_form_data(self, email, username): + form_data = {'email': email, 'first_name': 'colabName', 'last_name': 'secondName', - 'username': 'colab', + 'username': username, 'password1': '123colab4', 'password2': '123colab4'} form = UserCreationForm(data=form_data) return form def test_already_registered_email(self): - form = self.create_form_data() + form = self.create_form_data('usertest@colab.com.br', + 'colab') self.assertFalse(form.is_valid()) def test_registered_email_message(self): - form = self.create_form_data() + form = self.create_form_data('usertest@colab.com.br', + 'colab') msg = form.error_messages.get('duplicate_email') % { 'url': reverse('login') } self.assertIn(msg, str(form)) + def test_valid_username(self): + form = self.create_form_data('user@email.com', + 'colab123@colab-spb.com') + self.assertTrue(form.is_valid()) + + def test_not_valid_username(self): + form = self.create_form_data('user@email.com', + 'colab!') + self.assertFalse(form.is_valid()) + def tearDown(self): pass -- libgit2 0.21.2