diff --git a/core/forms.py b/core/forms.py index d85fc34..ecb926e 100644 --- a/core/forms.py +++ b/core/forms.py @@ -9,6 +9,12 @@ class RegisterUserForm(forms.ModelForm): # birth_date = forms.DateField(widget=forms.SelectDateWidget()) MIN_LENGTH = 8 + def clean_email(self): + email = self.cleaned_data['email'] + if User.objects.filter(email = email).exists(): + raise forms.ValidationError('Já existe um usuário cadastrado com este E-mail') + return email + def clean_password(self): password = self.cleaned_data.get('password') @@ -29,7 +35,7 @@ class RegisterUserForm(forms.ModelForm): password2 = self.cleaned_data.get("password2") if password and password2 and password != password2: - raise forms.ValidationError('A confirmmacao de senha esta incorreta') + raise forms.ValidationError('A confirmacão da senha está incorreta') return password2 def save(self, commit=True): diff --git a/core/tests.py b/core/tests.py index ee8f0ab..d1faddc 100644 --- a/core/tests.py +++ b/core/tests.py @@ -60,6 +60,49 @@ class RegisterUserTestCase(TestCase): self.assertEqual(response.status_code, 302) self.assertEqual(User.objects.count(), 1) + def test_register_error(self): + response = self.client.get(self.url) + self.assertEquals(response.status_code, 200) + + data = { + 'username': 'testeamadeus', + 'email': 'teste@amadeus.com', + 'password': 'aminhasenha1', + 'password2': 'aminhasenha', + 'name': 'Teste Amadeus', + 'city': 'Praia', + 'state': 'PE', + 'gender': 'F', + } + response = self.client.post(self.url, data) + self.assertFormError(response, 'form', 'password2', 'A confirmacão da senha está incorreta') + + data = { + 'username': 'testeamadeus', + 'email': 'teste.amadeus.com', + 'password': 'aminhasenha1', + 'password2': 'aminhasenha', + 'name': 'Teste Amadeus', + 'city': 'Praia', + 'state': 'PE', + 'gender': 'F', + } + response = self.client.post(self.url, data) + self.assertFormError(response, 'form', 'email', 'Insira um endereço de email válido.') + + data = { + 'username': '', + 'email': 'teste@amadeus.com', + 'password': 'aminhasenha1', + 'password2': 'aminhasenha', + 'name': 'Teste Amadeus', + 'city': 'Praia', + 'state': 'PE', + 'gender': 'F', + } + response = self.client.post(self.url, data) + self.assertFormError(response, 'form', 'username', 'Este campo é obrigatório.') + class RememberPasswordTestCase(TestCase): def setUp(self): -- libgit2 0.21.2