diff --git a/colab/accounts/tests/test_user_subscription.py b/colab/accounts/tests/test_user_subscription.py index 411a4f2..58de460 100644 --- a/colab/accounts/tests/test_user_subscription.py +++ b/colab/accounts/tests/test_user_subscription.py @@ -3,8 +3,10 @@ Test User Mailing list Subscriptions class. Objective: Test parameters, and behavior. """ +from mock import patch from colab.accounts.models import User from django.test import TestCase, Client +from colab.accounts.utils import mailman class UserSubscriptionTest(TestCase): @@ -32,11 +34,13 @@ class UserSubscriptionTest(TestCase): return user - def authenticate_user(self): - self.user.needs_update = False - self.user.save() - self.client.login(username=self.user.username, - password='123colab4') + def authenticate_user(self, user=None, password='123colab4'): + if not user: + user = self.user + user.needs_update = False + user.save() + self.client.login(username=user.username, + password=password) def test_manage_subscription_logged_in(self): self.authenticate_user() @@ -48,3 +52,40 @@ class UserSubscriptionTest(TestCase): response = self.client.get("/account/" + self.user.username + "/subscriptions") self.assertEqual(response.status_code, self.FORBIDDEN_ACCESS) + + @patch.object(mailman, 'all_lists') + @patch.object(mailman, 'mailing_lists') + def test_context_data_generation(self, mailing_lists, all_lists): + data_user = { + 'username': 'username1', + 'first_name': 'first name1', + 'last_name': 'last name1', + 'email': 'mail1@mail.com', + 'password1': 'safepassword', + 'password2': 'safepassword', + } + self.client.post('/account/register', data=data_user) + user1 = User.objects.last() + user1.is_active = True + user1.save() + self.authenticate_user(user1, 'safepassword') + + mail_lists = [ + {"listname": "name_mock_1", "description": "descript_1"}, + {"listname": "name_mock_2", "description": "descript_2"}, + {"listname": "name_mock_3", "description": "descript_3"}, + ] + all_lists.return_value = mail_lists + + my_mail_lists = [ + "name_mock_1", + "name_mock_3", + ] + mailing_lists.return_value = my_mail_lists + response = self.client.get("/account/" + user1.username + + "/subscriptions") + self.assertEqual(response.status_code, self.OK) + mailresponse = response.context_data['membership'][user1.email] + mailresponse = map(lambda x: x[-1], mailresponse) + expected_value = [True, False, True] + self.assertEqual(mailresponse, expected_value) -- libgit2 0.21.2