test_views.py 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import json
  2. from django.urls import reverse
  3. from misago.acl.test import patch_user_acl
  4. from misago.categories.models import Category
  5. from misago.users.testutils import AuthenticatedUserTestCase
  6. class CategoryViewsTests(AuthenticatedUserTestCase):
  7. def setUp(self):
  8. super().setUp()
  9. self.category = Category.objects.get(slug="first-category")
  10. def test_index_renders(self):
  11. """categories list renders for authenticated"""
  12. response = self.client.get(reverse("misago:categories"))
  13. self.assertContains(response, self.category.name)
  14. self.assertContains(response, self.category.get_absolute_url())
  15. def test_index_renders_for_guest(self):
  16. """categories list renders for guest"""
  17. self.logout_user()
  18. response = self.client.get(reverse("misago:categories"))
  19. self.assertContains(response, self.category.name)
  20. self.assertContains(response, self.category.get_absolute_url())
  21. @patch_user_acl({"visible_categories": []})
  22. def test_index_no_perms_renders(self):
  23. """categories list renders no visible categories for authenticated"""
  24. response = self.client.get(reverse("misago:categories"))
  25. self.assertNotContains(response, self.category.name)
  26. self.assertNotContains(response, self.category.get_absolute_url())
  27. @patch_user_acl({"visible_categories": []})
  28. def test_index_no_perms_renders_for_guest(self):
  29. """categories list renders no visible categories for guest"""
  30. self.logout_user()
  31. response = self.client.get(reverse("misago:categories"))
  32. self.assertNotContains(response, self.category.name)
  33. self.assertNotContains(response, self.category.get_absolute_url())
  34. class CategoryAPIViewsTests(AuthenticatedUserTestCase):
  35. def setUp(self):
  36. super().setUp()
  37. self.category = Category.objects.get(slug="first-category")
  38. def test_list_renders(self):
  39. """api returns categories for authenticated"""
  40. response = self.client.get(reverse("misago:api:category-list"))
  41. self.assertContains(response, self.category.name)
  42. self.assertContains(response, self.category.get_absolute_url())
  43. def test_list_renders_for_guest(self):
  44. """api returns categories for guest"""
  45. self.logout_user()
  46. response = self.client.get(reverse("misago:api:category-list"))
  47. self.assertContains(response, self.category.name)
  48. self.assertContains(response, self.category.get_absolute_url())
  49. @patch_user_acl({"visible_categories": []})
  50. def test_list_no_perms_renders(self):
  51. """api returns no categories for authenticated"""
  52. response = self.client.get(reverse("misago:api:category-list"))
  53. assert json.loads(response.content) == []
  54. @patch_user_acl({"visible_categories": []})
  55. def test_list_no_perms_renders_for_guest(self):
  56. """api returns no categories for guest"""
  57. self.logout_user()
  58. response = self.client.get(reverse("misago:api:category-list"))
  59. assert json.loads(response.content) == []