Commit 3a93344f3f3e0b2d53608793de91de785c740cf4
Committed by
Sergio Oliveira
1 parent
09c63134
Exists in
master
and in
39 other branches
Finished tests on signup.
Signed-off-by: Carolina Ramalho <carol15022@hotmail.com> Signed-off-by: Matheus Fernandes <matheus.souza.fernandes@gmail.com> Signed-off-by: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>
Showing
2 changed files
with
52 additions
and
3 deletions
Show diff stats
... | ... | @@ -0,0 +1,44 @@ |
1 | +""" | |
2 | +Test Sign Up view | |
3 | +This test related with accounts/views.py | |
4 | +""" | |
5 | + | |
6 | +from django.test import TestCase, Client | |
7 | +from colab.accounts.models import User | |
8 | + | |
9 | +class TestSignUpView(TestCase): | |
10 | + | |
11 | + def setUp(self): | |
12 | + self.user = self.create_user_django() | |
13 | + self.client = Client() | |
14 | + | |
15 | + def tearDown(self): | |
16 | + self.user.delete() | |
17 | + | |
18 | + def create_user_django(self): | |
19 | + user = User.objects.create_user("USERtestCoLaB", | |
20 | + "usertest@colab.com.br", "123colab4") | |
21 | + return user | |
22 | + | |
23 | + def test_user_authenticated_and_unregistered(self): | |
24 | + self.client.login(username="usertestcolab", password="123colab4") | |
25 | + response = self.client.get("/account/register/") | |
26 | + self.assertEquals(200, response.status_code) | |
27 | + self.client.logout() | |
28 | + | |
29 | + def test_user_authenticated_and_registered(self): | |
30 | + self.user.needs_update = False | |
31 | + self.user.save() | |
32 | + self.client.login(username="usertestcolab", password="123colab4") | |
33 | + response = self.client.get("/account/register/") | |
34 | + self.assertEquals(302, response.status_code) | |
35 | + url = "http://testserver/account/usertestcolab" | |
36 | + self.assertEquals(url, response.url) | |
37 | + self.client.logout() | |
38 | + | |
39 | + def test_user_not_authenticated(self): | |
40 | + response = self.client.get("/account/register/") | |
41 | + self.assertEquals(302 , response.status_code) | |
42 | + url = "http://testserver/account/login" | |
43 | + self.assertEquals(url, response.url) | |
44 | + | ... | ... |
colab/accounts/views.py
... | ... | @@ -123,17 +123,22 @@ class UserProfileDetailView(UserProfileBaseMixin, DetailView): |
123 | 123 | |
124 | 124 | |
125 | 125 | def signup(request): |
126 | + # TODO: Refactor | |
126 | 127 | user = request.user |
127 | 128 | |
128 | - # If the user is not authenticated, redirect to login | |
129 | + # If the user is not authenticated in Persona, and try to access url | |
130 | + # /account/register/ then he will be redirected to login page. | |
129 | 131 | if not user.is_authenticated(): |
130 | 132 | return redirect('login') |
131 | 133 | |
132 | - # If the user doesn't need to update its main data, redirect to its profile | |
134 | + # If the user is authenticated in Persona, already register in Colab | |
135 | + # and try to access directly "/account/register/", then he will be redirect | |
136 | + # to user profile. | |
133 | 137 | if not user.needs_update: |
134 | 138 | return redirect('user_profile', username=user.username) |
135 | 139 | |
136 | - # If the request method is GET just return the form | |
140 | + # If the user is authenticated in Persona, but not in the Colab then he | |
141 | + # will be redirected to the register form. | |
137 | 142 | if request.method == 'GET': |
138 | 143 | user_form = UserCreationForm() |
139 | 144 | lists_form = ListsForm() | ... | ... |