test_views.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. from django.urls import reverse
  2. from misago.acl.testutils import override_acl
  3. from misago.users.testutils import AuthenticatedUserTestCase
  4. from ..models import Category
  5. from ..utils import get_categories_tree
  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.assertContains(response, node.name)
  12. if node.level > 1:
  13. self.assertContains(response, node.get_absolute_url())
  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.assertContains(response, node.name)
  20. if node.level > 1:
  21. self.assertContains(response, node.get_absolute_url())
  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.assertNotContains(response, node.get_absolute_url())
  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.assertNotContains(response, node.get_absolute_url())
  39. class CategoryAPIViewsTests(AuthenticatedUserTestCase):
  40. def setUp(self):
  41. super(CategoryAPIViewsTests, self).setUp()
  42. self.category = Category.objects.get(slug='first-category')
  43. def test_list_renders(self):
  44. """api returns categories for authenticated"""
  45. response = self.client.get(reverse('misago:api:category-list'))
  46. for node in get_categories_tree(self.user):
  47. self.assertContains(response, node.name)
  48. if node.level > 1:
  49. self.assertNotContains(response, node.get_absolute_url())
  50. def test_list_renders_for_guest(self):
  51. """api returns categories for guest"""
  52. self.logout_user()
  53. response = self.client.get(reverse('misago:api:category-list'))
  54. for node in get_categories_tree(self.user):
  55. self.assertContains(response, node.name)
  56. if node.level > 1:
  57. self.assertNotContains(response, node.get_absolute_url())
  58. def test_list_no_perms_renders(self):
  59. """api returns no categories for authenticated"""
  60. override_acl(self.user, {'visible_categories': []})
  61. response = self.client.get(reverse('misago:api:category-list'))
  62. for node in get_categories_tree(self.user):
  63. self.assertNotIn(node.name, response.content)
  64. if node.level > 1:
  65. self.assertNotContains(response, node.get_absolute_url())
  66. def test_list_no_perms_renders_for_guest(self):
  67. """api returns no categories for guest"""
  68. self.logout_user()
  69. override_acl(self.user, {'visible_categories': []})
  70. response = self.client.get(reverse('misago:api:category-list'))
  71. for node in get_categories_tree(self.user):
  72. self.assertNotContains(response, node.name)
  73. if node.level > 1:
  74. self.assertNotContains(response, node.get_absolute_url())