Commit 66b2ece5b495e4c6458afe96209e54468ff4e727

Authored by carol15022
Committed by Sergio Oliveira
1 parent 364ecdc0

Fields validation

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)