Commit 8a875ccaaa70191274dee9083c78aebb8d7b0159
Committed by
Matheus de Sousa Faria
1 parent
d2f9859b
Exists in
master
and in
4 other branches
Adding test to generation of context data
Signed-off-by: Matheus Faria <matheus.sousa.faria@gmail.com> Signed-off-by: TomazMartins <tomaz.r.martins@gmail.com> Signed-off-by: Luiz Oliveira <ziuloliveira@gmail.com>
Showing
1 changed file
with
46 additions
and
5 deletions
Show diff stats
colab/accounts/tests/test_user_subscription.py
@@ -3,8 +3,10 @@ Test User Mailing list Subscriptions class. | @@ -3,8 +3,10 @@ Test User Mailing list Subscriptions class. | ||
3 | Objective: Test parameters, and behavior. | 3 | Objective: Test parameters, and behavior. |
4 | """ | 4 | """ |
5 | 5 | ||
6 | +from mock import patch | ||
6 | from colab.accounts.models import User | 7 | from colab.accounts.models import User |
7 | from django.test import TestCase, Client | 8 | from django.test import TestCase, Client |
9 | +from colab.accounts.utils import mailman | ||
8 | 10 | ||
9 | 11 | ||
10 | class UserSubscriptionTest(TestCase): | 12 | class UserSubscriptionTest(TestCase): |
@@ -32,11 +34,13 @@ class UserSubscriptionTest(TestCase): | @@ -32,11 +34,13 @@ class UserSubscriptionTest(TestCase): | ||
32 | 34 | ||
33 | return user | 35 | return user |
34 | 36 | ||
35 | - def authenticate_user(self): | ||
36 | - self.user.needs_update = False | ||
37 | - self.user.save() | ||
38 | - self.client.login(username=self.user.username, | ||
39 | - password='123colab4') | 37 | + def authenticate_user(self, user=None, password='123colab4'): |
38 | + if not user: | ||
39 | + user = self.user | ||
40 | + user.needs_update = False | ||
41 | + user.save() | ||
42 | + self.client.login(username=user.username, | ||
43 | + password=password) | ||
40 | 44 | ||
41 | def test_manage_subscription_logged_in(self): | 45 | def test_manage_subscription_logged_in(self): |
42 | self.authenticate_user() | 46 | self.authenticate_user() |
@@ -48,3 +52,40 @@ class UserSubscriptionTest(TestCase): | @@ -48,3 +52,40 @@ class UserSubscriptionTest(TestCase): | ||
48 | response = self.client.get("/account/" + self.user.username + | 52 | response = self.client.get("/account/" + self.user.username + |
49 | "/subscriptions") | 53 | "/subscriptions") |
50 | self.assertEqual(response.status_code, self.FORBIDDEN_ACCESS) | 54 | self.assertEqual(response.status_code, self.FORBIDDEN_ACCESS) |
55 | + | ||
56 | + @patch.object(mailman, 'all_lists') | ||
57 | + @patch.object(mailman, 'mailing_lists') | ||
58 | + def test_context_data_generation(self, mailing_lists, all_lists): | ||
59 | + data_user = { | ||
60 | + 'username': 'username1', | ||
61 | + 'first_name': 'first name1', | ||
62 | + 'last_name': 'last name1', | ||
63 | + 'email': 'mail1@mail.com', | ||
64 | + 'password1': 'safepassword', | ||
65 | + 'password2': 'safepassword', | ||
66 | + } | ||
67 | + self.client.post('/account/register', data=data_user) | ||
68 | + user1 = User.objects.last() | ||
69 | + user1.is_active = True | ||
70 | + user1.save() | ||
71 | + self.authenticate_user(user1, 'safepassword') | ||
72 | + | ||
73 | + mail_lists = [ | ||
74 | + {"listname": "name_mock_1", "description": "descript_1"}, | ||
75 | + {"listname": "name_mock_2", "description": "descript_2"}, | ||
76 | + {"listname": "name_mock_3", "description": "descript_3"}, | ||
77 | + ] | ||
78 | + all_lists.return_value = mail_lists | ||
79 | + | ||
80 | + my_mail_lists = [ | ||
81 | + "name_mock_1", | ||
82 | + "name_mock_3", | ||
83 | + ] | ||
84 | + mailing_lists.return_value = my_mail_lists | ||
85 | + response = self.client.get("/account/" + user1.username + | ||
86 | + "/subscriptions") | ||
87 | + self.assertEqual(response.status_code, self.OK) | ||
88 | + mailresponse = response.context_data['membership'][user1.email] | ||
89 | + mailresponse = map(lambda x: x[-1], mailresponse) | ||
90 | + expected_value = [True, False, True] | ||
91 | + self.assertEqual(mailresponse, expected_value) |