1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- from django.contrib.auth import get_user_model
- from django.core.urlresolvers import reverse
- from misago.acl.testutils import override_acl
- from misago.admin.testutils import AdminTestCase
- from misago.users.models import Rank
- class UsersListTestCase(AdminTestCase):
- def setUp(self):
- super(UsersListTestCase, self).setUp()
- override_acl(self.test_admin, {
- 'can_browse_users_list': 1,
- })
- class UsersListLanderTests(UsersListTestCase):
- def test_lander_no_permission(self):
- """lander returns 403 if user has no permission"""
- override_acl(self.test_admin, {
- 'can_browse_users_list': 0,
- })
- response = self.client.get(reverse('misago:users'))
- self.assertEqual(response.status_code, 403)
- def test_lander_redirect(self):
- """lander returns redirect to valid page if user has permission"""
- response = self.client.get(reverse('misago:users'))
- self.assertEqual(response.status_code, 302)
- self.assertTrue(response['location'].endswith(
- reverse('misago:users_active_posters')))
- class ActivePostersTests(UsersListTestCase):
- def test_active_posters_list(self):
- """active posters page has no showstoppers"""
- view_link = reverse('misago:users_active_posters')
- response = self.client.get(view_link)
- self.assertEqual(response.status_code, 200)
- # Create 200 test users and see if errors appeared
- User = get_user_model()
- for i in xrange(200):
- User.objects.create_user('Bob%s' % i, 'm%s@te.com' % i, 'Pass.123',
- posts=12345)
- response = self.client.get(view_link)
- self.assertEqual(response.status_code, 200)
- for page in xrange(2, 6):
- response = self.client.get(reverse('misago:users_active_posters',
- kwargs={'page': page}))
- self.assertEqual(response.status_code, 200)
- class OnlineUsersTests(UsersListTestCase):
- def test_no_permission(self):
- """online list returns 403 if user has no permission"""
- override_acl(self.test_admin, {
- 'can_browse_users_list': 1,
- 'can_see_users_online_list': 0,
- })
- response = self.client.get(reverse('misago:users_online'))
- self.assertEqual(response.status_code, 403)
- def test_with_permission(self):
- """online list returns 200 if user has permission"""
- override_acl(self.test_admin, {
- 'can_browse_users_list': 1,
- 'can_see_users_online_list': 1,
- })
- response = self.client.get(reverse('misago:users_online'))
- self.assertEqual(response.status_code, 200)
- class UsersRankTests(UsersListTestCase):
- def test_ranks(self):
- """ranks lists are handled correctly"""
- for rank in Rank.objects.iterator():
- rank_link = reverse('misago:users_rank',
- kwargs={'rank_slug': rank.slug})
- response = self.client.get(rank_link)
- if rank.is_tab:
- self.assertEqual(response.status_code, 200)
- else:
- self.assertEqual(response.status_code, 404)
|