test_lists_views.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. from django.contrib.auth import get_user_model
  2. from django.core.urlresolvers import reverse
  3. from django.utils.six.moves import range
  4. from misago.acl.testutils import override_acl
  5. from ..models import Rank
  6. from ..testutils import AuthenticatedUserTestCase
  7. class UsersListTestCase(AuthenticatedUserTestCase):
  8. def setUp(self):
  9. super(UsersListTestCase, self).setUp()
  10. override_acl(self.user, {
  11. 'can_browse_users_list': 1,
  12. })
  13. class UsersListLanderTests(UsersListTestCase):
  14. def test_lander_no_permission(self):
  15. """lander returns 403 if user has no permission"""
  16. override_acl(self.user, {
  17. 'can_browse_users_list': 0,
  18. })
  19. response = self.client.get(reverse('misago:users'))
  20. self.assertEqual(response.status_code, 403)
  21. def test_lander_redirect(self):
  22. """lander returns redirect to valid page if user has permission"""
  23. response = self.client.get(reverse('misago:users'))
  24. self.assertEqual(response.status_code, 302)
  25. self.assertTrue(response['location'].endswith(
  26. reverse('misago:users-active-posters')))
  27. class ActivePostersTests(UsersListTestCase):
  28. def test_active_posters_list(self):
  29. """active posters page has no showstoppers"""
  30. view_link = reverse('misago:users-active-posters')
  31. response = self.client.get(view_link)
  32. self.assertEqual(response.status_code, 200)
  33. # Create 200 test users and see if errors appeared
  34. User = get_user_model()
  35. for i in range(200):
  36. User.objects.create_user(
  37. 'Bob%s' % i, 'm%s@te.com' % i, 'Pass.123', posts=12345)
  38. response = self.client.get(view_link)
  39. self.assertEqual(response.status_code, 200)
  40. class UsersRankTests(UsersListTestCase):
  41. def test_ranks(self):
  42. """ranks lists are handled correctly"""
  43. for rank in Rank.objects.iterator():
  44. rank_link = reverse('misago:users-rank', kwargs={'slug': rank.slug})
  45. response = self.client.get(rank_link)
  46. if rank.is_tab:
  47. self.assertEqual(response.status_code, 200)
  48. else:
  49. self.assertEqual(response.status_code, 404)