test_search_views.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. from django.urls import reverse
  2. from misago.acl.testutils import override_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(LandingTests, self).setUp()
  8. self.test_link = reverse('misago:search')
  9. def test_no_permission(self):
  10. """view validates permission to search forum"""
  11. override_acl(self.user, {
  12. 'can_search': 0
  13. })
  14. response = self.client.get(self.test_link)
  15. self.assertContains(
  16. response, "have permission to search site", status_code=403)
  17. def test_redirect_to_provider(self):
  18. """view validates permission to search forum"""
  19. response = self.client.get(self.test_link)
  20. self.assertEqual(response.status_code, 302)
  21. self.assertIn(SearchThreads.url, response['location'])
  22. class SearchTests(AuthenticatedUserTestCase):
  23. """
  24. todo:
  25. - search provider disallowed
  26. - noscript view displayed
  27. """
  28. def test_no_permission(self):
  29. """view validates permission to search forum"""
  30. override_acl(self.user, {
  31. 'can_search': 0
  32. })
  33. response = self.client.get(
  34. reverse('misago:search', kwargs={'search_provider': 'users'}))
  35. self.assertContains(
  36. response, "have permission to search site", status_code=403)
  37. def test_not_found(self):
  38. """view raises 404 for not found provider"""
  39. response = self.client.get(
  40. reverse('misago:search', kwargs={'search_provider': 'nada'}))
  41. self.assertEqual(response.status_code, 404)
  42. def test_provider_no_permission(self):
  43. """provider raises 403 without permission"""
  44. override_acl(self.user, {
  45. 'can_search_users': 0
  46. })
  47. response = self.client.get(
  48. reverse('misago:search', kwargs={'search_provider': 'users'}))
  49. self.assertContains(
  50. response, "have permission to search users", status_code=403)
  51. def test_provider(self):
  52. """provider displays no script page"""
  53. response = self.client.get(
  54. reverse('misago:search', kwargs={'search_provider': 'threads'}))
  55. self.assertContains(response, "enable JavaScript")