test_views.py 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. from django.core.urlresolvers import reverse
  2. from misago.acl.testutils import override_acl
  3. from misago.categories.models import Category
  4. from misago.categories.utils import get_categories_tree
  5. from misago.users.testutils import AuthenticatedUserTestCase
  6. class CategoryViewsTests(AuthenticatedUserTestCase):
  7. def test_index_renders(self):
  8. """categories list renders for authenticated"""
  9. response = self.client.get(reverse('misago:categories'))
  10. for node in get_categories_tree(self.user):
  11. self.assertIn(node.name, response.content)
  12. if node.level > 1:
  13. self.assertIn(node.get_absolute_url(), response.content)
  14. def test_index_renders_for_guest(self):
  15. """categories list renders for guest"""
  16. self.logout_user()
  17. response = self.client.get(reverse('misago:categories'))
  18. for node in get_categories_tree(self.user):
  19. self.assertIn(node.name, response.content)
  20. if node.level > 1:
  21. self.assertIn(node.get_absolute_url(), response.content)
  22. def test_index_no_perms_renders(self):
  23. """categories list renders no visible categories for authenticated"""
  24. override_acl(self.user, {'visible_categories': []})
  25. response = self.client.get(reverse('misago:categories'))
  26. for node in get_categories_tree(self.user):
  27. self.assertNotIn(node.name, response.content)
  28. if node.level > 1:
  29. self.assertNotIn(node.get_absolute_url(), response.content)
  30. def test_index_no_perms_renders_for_guest(self):
  31. """categories list renders no visible categories for guest"""
  32. self.logout_user()
  33. override_acl(self.user, {'visible_categories': []})
  34. response = self.client.get(reverse('misago:categories'))
  35. for node in get_categories_tree(self.user):
  36. self.assertNotIn(node.name, response.content)
  37. if node.level > 1:
  38. self.assertNotIn(node.get_absolute_url(), response.content)
  39. class CategoryAPIViewsTests(AuthenticatedUserTestCase):
  40. def test_index_renders(self):
  41. """api returns categories for authenticated"""
  42. response = self.client.get(reverse('misago:api:categories'))
  43. for node in get_categories_tree(self.user):
  44. self.assertIn(node.name, response.content)
  45. if node.level > 1:
  46. self.assertIn(node.get_absolute_url(), response.content)
  47. def test_index_renders_for_guest(self):
  48. """api returns categories for guest"""
  49. self.logout_user()
  50. response = self.client.get(reverse('misago:api:categories'))
  51. for node in get_categories_tree(self.user):
  52. self.assertIn(node.name, response.content)
  53. if node.level > 1:
  54. self.assertIn(node.get_absolute_url(), response.content)
  55. def test_index_no_perms_renders(self):
  56. """api returns no categories for authenticated"""
  57. override_acl(self.user, {'visible_categories': []})
  58. response = self.client.get(reverse('misago:api:categories'))
  59. for node in get_categories_tree(self.user):
  60. self.assertNotIn(node.name, response.content)
  61. if node.level > 1:
  62. self.assertNotIn(node.get_absolute_url(), response.content)
  63. def test_index_no_perms_renders_for_guest(self):
  64. """api returns no categories for guest"""
  65. self.logout_user()
  66. override_acl(self.user, {'visible_categories': []})
  67. response = self.client.get(reverse('misago:api:categories'))
  68. for node in get_categories_tree(self.user):
  69. self.assertNotIn(node.name, response.content)
  70. if node.level > 1:
  71. self.assertNotIn(node.get_absolute_url(), response.content)