test_privatelist.py
2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# -*- coding:utf-8 -*-
import mock
from colab.accounts.utils import mailman
from django.test import TestCase, Client
class ArchivesViewTest(TestCase):
fixtures = ['mailinglistdata.json']
def setUp(self):
self.client = Client()
def authenticate_user(self):
self.client.login(username='johndoe', password='1234')
def test_see_only_private_list_if_member(self):
mailman.get_user_mailinglists = mock.Mock(
return_value=[{'listname': 'privatelist'}])
mailman.extract_listname_from_list = mock.Mock(
return_value=['privatelist'])
mailman.list_users = mock.Mock(return_value=['johndoe@example.com'])
self.authenticate_user()
request = self.client.get('/archives/thread/')
list_data = request.context['lists']
self.assertEqual('lista', list_data[0].name)
self.assertEqual('privatelist', list_data[1].name)
self.assertEqual(2, len(list_data))
def test_see_only_public_if_not_logged_in(self):
request = self.client.get('/archives/thread/')
list_data = request.context['lists']
self.assertEqual('lista', list_data[0].name)
self.assertEqual(1, len(list_data))
def test_see_private_thread_in_dashboard_if_member(self):
mailman.get_user_mailinglists = mock.Mock(
return_value="[{'listname': 'privatelist'}]")
mailman.extract_listname_from_list = mock.Mock(
return_value="['privatelist']")
self.authenticate_user()
request = self.client.get('/dashboard')
latest_threads = request.context['latest_threads']
hottest_threads = request.context['hottest_threads']
self.assertEqual(2, len(latest_threads))
self.assertEqual(2, len(hottest_threads))
def test_dont_see_private_thread_if_logged_out(self):
request = self.client.get('/dashboard')
latest_threads = request.context['latest_threads']
hottest_threads = request.context['hottest_threads']
self.assertEqual(1, len(latest_threads))
self.assertEqual(1, len(hottest_threads))
def test_dont_see_private_threads_in_profile_if_logged_out(self):
request = self.client.get('/account/johndoe')
emails = request.context['emails']
self.assertEqual(1, len(emails))