-test_moderatedcontent_view.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. from django.core.urlresolvers import reverse
  2. from django.utils.translation import ugettext as _
  3. from misago.acl.testutils import override_acl
  4. from misago.categories.models import Category
  5. from misago.users.testutils import UserTestCase, AuthenticatedUserTestCase
  6. from misago.threads import testutils
  7. class AuthenticatedTests(AuthenticatedUserTestCase):
  8. def override_acl(self):
  9. new_acl = {
  10. 'can_see': True,
  11. 'can_browse': True,
  12. 'can_see_all_threads': True,
  13. 'can_review_moderated_content': True,
  14. }
  15. categories_acl = self.user.acl
  16. for category in Category.objects.all():
  17. categories_acl['visible_categories'].append(category.pk)
  18. categories_acl['can_review_moderated_content'].append(category.pk)
  19. categories_acl['categories'][category.pk] = new_acl
  20. override_acl(self.user, categories_acl)
  21. def test_cant_see_threads_list(self):
  22. """user has no permission to see moderated list"""
  23. response = self.client.get(reverse('misago:moderated_content'))
  24. self.assertEqual(response.status_code, 403)
  25. self.assertIn("review moderated content.", response.content)
  26. def test_empty_threads_list(self):
  27. """empty threads list is rendered"""
  28. category = Category.objects.all_categories().filter(role="category")[:1][0]
  29. [testutils.post_thread(category) for t in xrange(10)]
  30. self.override_acl();
  31. response = self.client.get(reverse('misago:moderated_content'))
  32. self.assertEqual(response.status_code, 200)
  33. self.assertIn("There are no threads with moderated", response.content)
  34. def test_filled_threads_list(self):
  35. """filled threads list is rendered"""
  36. category = Category.objects.all_categories().filter(role="category")[:1][0]
  37. threads = []
  38. for t in xrange(10):
  39. threads.append(testutils.post_thread(category, is_moderated=True))
  40. for t in xrange(10):
  41. threads.append(testutils.post_thread(category))
  42. testutils.reply_thread(threads[-1], is_moderated=True)
  43. self.override_acl();
  44. response = self.client.get(reverse('misago:moderated_content'))
  45. self.assertEqual(response.status_code, 200)
  46. for thread in threads:
  47. self.assertIn(thread.get_absolute_url(), response.content)
  48. class AnonymousTests(UserTestCase):
  49. def test_anon_access_to_view(self):
  50. """anonymous user has no access to unread threads list"""
  51. response = self.client.get(reverse('misago:moderated_content'))
  52. self.assertEqual(response.status_code, 403)
  53. self.assertIn("sign in to see list", response.content)