Commit 66b2ece5b495e4c6458afe96209e54468ff4e727
Committed by
Sergio Oliveira
1 parent
364ecdc0
Exists in
master
and in
39 other branches
Fields validation
Showing
3 changed files
with
58 additions
and
36 deletions
Show diff stats
colab/accounts/forms.py
@@ -2,6 +2,7 @@ | @@ -2,6 +2,7 @@ | ||
2 | 2 | ||
3 | from collections import OrderedDict | 3 | from collections import OrderedDict |
4 | 4 | ||
5 | +from django.http import HttpRequest | ||
5 | from django import forms | 6 | from django import forms |
6 | from django.contrib.auth import authenticate, get_user_model | 7 | from django.contrib.auth import authenticate, get_user_model |
7 | from django.contrib.auth.forms import ReadOnlyPasswordHashField | 8 | from django.contrib.auth.forms import ReadOnlyPasswordHashField |
@@ -60,8 +61,51 @@ class UserForm(forms.ModelForm): | @@ -60,8 +61,51 @@ class UserForm(forms.ModelForm): | ||
60 | if not username: | 61 | if not username: |
61 | raise forms.ValidationError(_('This field cannot be blank.')) | 62 | raise forms.ValidationError(_('This field cannot be blank.')) |
62 | return username | 63 | return username |
63 | - | ||
64 | - | 64 | + |
65 | + def clean_first_name(self): | ||
66 | + first_name = self.cleaned_data["first_name"].strip() | ||
67 | + if not first_name: | ||
68 | + raise forms.ValidationError(_('This field cannot be blank.')) | ||
69 | + return first_name | ||
70 | + | ||
71 | + def clean_last_name(self): | ||
72 | + last_name = self.cleaned_data["last_name"].strip() | ||
73 | + if not last_name: | ||
74 | + raise forms.ValidationError(_('This field cannot be blank.')) | ||
75 | + return last_name | ||
76 | + | ||
77 | + def clean_twitter(self): | ||
78 | + twitter = self.cleaned_data["twitter"] | ||
79 | + if twitter is not None and twitter.isspace(): | ||
80 | + return self.initial.get("twitter") | ||
81 | + return twitter | ||
82 | + | ||
83 | + def clean_facebook(self): | ||
84 | + facebook = self.cleaned_data["facebook"] | ||
85 | + if facebook is not None and facebook.isspace(): | ||
86 | + return self.initial.get("facebook") | ||
87 | + return facebook | ||
88 | + | ||
89 | + def clean_webpage(self): | ||
90 | + webpage = self.cleaned_data["webpage"].strip() | ||
91 | + return webpage | ||
92 | + | ||
93 | + def clean_role(self): | ||
94 | + role = self.cleaned_data["role"].strip() | ||
95 | + return role | ||
96 | + | ||
97 | + def clean_institution(self): | ||
98 | + institution = self.cleaned_data["institution"].strip() | ||
99 | + return institution | ||
100 | + | ||
101 | + def clean_bio(self): | ||
102 | + bio = self.cleaned_data["bio"].strip() | ||
103 | + return bio | ||
104 | + | ||
105 | + def clean_github(self): | ||
106 | + github = self.cleaned_data["github"].strip() | ||
107 | + return github | ||
108 | + | ||
65 | class UserUpdateForm(UserForm): | 109 | class UserUpdateForm(UserForm): |
66 | bio = forms.CharField( | 110 | bio = forms.CharField( |
67 | widget=forms.Textarea(attrs={'rows': '6', 'maxlength': '200'}), | 111 | widget=forms.Textarea(attrs={'rows': '6', 'maxlength': '200'}), |
colab/accounts/tests/test_user.py
@@ -116,11 +116,6 @@ class UserTest(TestCase): | @@ -116,11 +116,6 @@ class UserTest(TestCase): | ||
116 | self.validate_mandatory_fields('USERtestCoLaB', 'COLAB', ' ', ' ') | 116 | self.validate_mandatory_fields('USERtestCoLaB', 'COLAB', ' ', ' ') |
117 | self.user.delete() | 117 | self.user.delete() |
118 | 118 | ||
119 | - def test_update_user_mandatory_invalid_using_number(self): | ||
120 | - self.authenticate_user() | ||
121 | - self.validate_mandatory_fields('USERtestCoLaB', 'COLAB', '123', '456') | ||
122 | - self.user.delete() | ||
123 | - | ||
124 | def test_update_user_institution(self): | 119 | def test_update_user_institution(self): |
125 | self.authenticate_user() | 120 | self.authenticate_user() |
126 | self.validate_non_mandatory_fields('institution', 'fga', 'fga') | 121 | self.validate_non_mandatory_fields('institution', 'fga', 'fga') |
@@ -148,11 +143,7 @@ class UserTest(TestCase): | @@ -148,11 +143,7 @@ class UserTest(TestCase): | ||
148 | 143 | ||
149 | def test_update_user_institution_invalid_whitespace(self): | 144 | def test_update_user_institution_invalid_whitespace(self): |
150 | self.authenticate_user() | 145 | self.authenticate_user() |
151 | - self.validate_non_mandatory_fields('institution', None, ' ') | ||
152 | - | ||
153 | - def test_update_user_institution_invalid_using_number(self): | ||
154 | - self.authenticate_user() | ||
155 | - self.validate_non_mandatory_fields('institution', None, '123') | 146 | + self.validate_non_mandatory_fields('institution', '', ' ') |
156 | self.user.delete() | 147 | self.user.delete() |
157 | 148 | ||
158 | def test_update_user_role(self): | 149 | def test_update_user_role(self): |
@@ -182,12 +173,7 @@ class UserTest(TestCase): | @@ -182,12 +173,7 @@ class UserTest(TestCase): | ||
182 | 173 | ||
183 | def test_update_user_role_invalid_whitespace(self): | 174 | def test_update_user_role_invalid_whitespace(self): |
184 | self.authenticate_user() | 175 | self.authenticate_user() |
185 | - self.validate_non_mandatory_fields('role', None, ' ') | ||
186 | - self.user.delete() | ||
187 | - | ||
188 | - def test_update_user_role_invalid_using_number(self): | ||
189 | - self.authenticate_user() | ||
190 | - self.validate_non_mandatory_fields('role', None, '123') | 176 | + self.validate_non_mandatory_fields('role', '', ' ') |
191 | self.user.delete() | 177 | self.user.delete() |
192 | 178 | ||
193 | def test_update_user_twitter(self): | 179 | def test_update_user_twitter(self): |
@@ -226,11 +212,6 @@ class UserTest(TestCase): | @@ -226,11 +212,6 @@ class UserTest(TestCase): | ||
226 | self.validate_non_mandatory_fields('twitter', 'usertestcolab', ' ') | 212 | self.validate_non_mandatory_fields('twitter', 'usertestcolab', ' ') |
227 | self.user.delete() | 213 | self.user.delete() |
228 | 214 | ||
229 | - def test_update_user_twitter_invalid_using_number(self): | ||
230 | - self.authenticate_user() | ||
231 | - self.validate_non_mandatory_fields('twitter', 'usertestcolab', '123') | ||
232 | - self.user.delete() | ||
233 | - | ||
234 | ''' | 215 | ''' |
235 | Max_lenght is the maximmum size accept by Faceebook. | 216 | Max_lenght is the maximmum size accept by Faceebook. |
236 | Tests related with twitter should have internet connection, | 217 | Tests related with twitter should have internet connection, |
@@ -267,11 +248,6 @@ class UserTest(TestCase): | @@ -267,11 +248,6 @@ class UserTest(TestCase): | ||
267 | self.validate_non_mandatory_fields('facebook', 'usertestcolab', ' ') | 248 | self.validate_non_mandatory_fields('facebook', 'usertestcolab', ' ') |
268 | self.user.delete() | 249 | self.user.delete() |
269 | 250 | ||
270 | - def test_update_user_facebook_invalid_using_number(self): | ||
271 | - self.authenticate_user() | ||
272 | - self.validate_non_mandatory_fields('facebook', 'usertestcolab', '123') | ||
273 | - self.user.delete() | ||
274 | - | ||
275 | def test_update_user_gtalk(self): | 251 | def test_update_user_gtalk(self): |
276 | self.authenticate_user() | 252 | self.authenticate_user() |
277 | self.validate_non_mandatory_fields('google_talk', 'gtalk@colab.com.br', | 253 | self.validate_non_mandatory_fields('google_talk', 'gtalk@colab.com.br', |
@@ -332,7 +308,7 @@ class UserTest(TestCase): | @@ -332,7 +308,7 @@ class UserTest(TestCase): | ||
332 | 308 | ||
333 | def test_update_user_github_invalid_whitespace(self): | 309 | def test_update_user_github_invalid_whitespace(self): |
334 | self.authenticate_user() | 310 | self.authenticate_user() |
335 | - self.validate_non_mandatory_fields('github', None, ' ') | 311 | + self.validate_non_mandatory_fields('github', '', ' ') |
336 | self.user.delete() | 312 | self.user.delete() |
337 | 313 | ||
338 | def test_update_user_webpage(self): | 314 | def test_update_user_webpage(self): |
@@ -362,7 +338,7 @@ class UserTest(TestCase): | @@ -362,7 +338,7 @@ class UserTest(TestCase): | ||
362 | 338 | ||
363 | def test_update_user_webpage_invalid_whitespace(self): | 339 | def test_update_user_webpage_invalid_whitespace(self): |
364 | self.authenticate_user() | 340 | self.authenticate_user() |
365 | - self.validate_non_mandatory_fields('webpage', None, ' ') | 341 | + self.validate_non_mandatory_fields('webpage', '', ' ') |
366 | self.user.delete() | 342 | self.user.delete() |
367 | 343 | ||
368 | def test_update_user_bio(self): | 344 | def test_update_user_bio(self): |
@@ -392,5 +368,5 @@ class UserTest(TestCase): | @@ -392,5 +368,5 @@ class UserTest(TestCase): | ||
392 | 368 | ||
393 | def test_update_user_bio_invalid_whitespace(self): | 369 | def test_update_user_bio_invalid_whitespace(self): |
394 | self.authenticate_user() | 370 | self.authenticate_user() |
395 | - self.validate_non_mandatory_fields('bio', None, ' ') | 371 | + self.validate_non_mandatory_fields('bio', '', ' ') |
396 | self.user.delete() | 372 | self.user.delete() |
colab/accounts/tests/test_view_signup.py
@@ -5,7 +5,7 @@ This test related with accounts/views.py | @@ -5,7 +5,7 @@ This test related with accounts/views.py | ||
5 | 5 | ||
6 | from django.test import TestCase, Client | 6 | from django.test import TestCase, Client |
7 | from colab.accounts.models import User | 7 | from colab.accounts.models import User |
8 | - | 8 | +from django.core.cache import cache |
9 | 9 | ||
10 | class TestSignUpView(TestCase): | 10 | class TestSignUpView(TestCase): |
11 | 11 | ||
@@ -38,7 +38,9 @@ class TestSignUpView(TestCase): | @@ -38,7 +38,9 @@ class TestSignUpView(TestCase): | ||
38 | self.client.logout() | 38 | self.client.logout() |
39 | 39 | ||
40 | def test_user_not_authenticated(self): | 40 | def test_user_not_authenticated(self): |
41 | - response = self.client.get("/account/register/") | ||
42 | - self.assertEquals(302, response.status_code) | ||
43 | - url = "http://testserver/account/login" | ||
44 | - self.assertEquals(url, response.url) | 41 | + with self.settings(BROWSERID_ENABLE=True): |
42 | + cache.clear() | ||
43 | + response = self.client.get("/account/register/") | ||
44 | + self.assertEquals(302, response.status_code) | ||
45 | + url = "http://testserver/account/login" | ||
46 | + self.assertEquals(url, response.url) |