test_views.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. from django.urls import reverse
  2. from misago.acl.test import patch_user_acl
  3. from misago.threads.search import SearchThreads
  4. from misago.users.testutils import AuthenticatedUserTestCase
  5. class LandingTests(AuthenticatedUserTestCase):
  6. def setUp(self):
  7. super().setUp()
  8. self.test_link = reverse("misago:search")
  9. @patch_user_acl({"can_search": False})
  10. def test_no_permission(self):
  11. """view validates permission to search forum"""
  12. response = self.client.get(self.test_link)
  13. self.assertContains(response, "have permission to search site", status_code=403)
  14. @patch_user_acl({"can_search": True})
  15. def test_redirect_to_provider(self):
  16. """view validates permission to search forum"""
  17. response = self.client.get(self.test_link)
  18. self.assertEqual(response.status_code, 302)
  19. self.assertIn(SearchThreads.url, response["location"])
  20. class SearchTests(AuthenticatedUserTestCase):
  21. @patch_user_acl({"can_search": False})
  22. def test_no_permission(self):
  23. """view validates permission to search forum"""
  24. response = self.client.get(
  25. reverse("misago:search", kwargs={"search_provider": "users"})
  26. )
  27. self.assertContains(response, "have permission to search site", status_code=403)
  28. def test_not_found(self):
  29. """view raises 404 for not found provider"""
  30. response = self.client.get(
  31. reverse("misago:search", kwargs={"search_provider": "nada"})
  32. )
  33. self.assertEqual(response.status_code, 404)
  34. @patch_user_acl({"can_search": True, "can_search_users": False})
  35. def test_provider_no_permission(self):
  36. """provider raises 403 without permission"""
  37. response = self.client.get(
  38. reverse("misago:search", kwargs={"search_provider": "users"})
  39. )
  40. self.assertContains(
  41. response, "have permission to search users", status_code=403
  42. )
  43. def test_provider(self):
  44. """provider displays no script page"""
  45. response = self.client.get(
  46. reverse("misago:search", kwargs={"search_provider": "users"})
  47. )
  48. self.assertContains(response, "Loading search...")