test_views.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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, {'can_search': 0})
  12. response = self.client.get(self.test_link)
  13. self.assertContains(response, "have permission to search site", status_code=403)
  14. def test_redirect_to_provider(self):
  15. """view validates permission to search forum"""
  16. response = self.client.get(self.test_link)
  17. self.assertEqual(response.status_code, 302)
  18. self.assertIn(SearchThreads.url, response['location'])
  19. class SearchTests(AuthenticatedUserTestCase):
  20. def test_no_permission(self):
  21. """view validates permission to search forum"""
  22. override_acl(self.user, {'can_search': 0})
  23. response = self.client.get(reverse('misago:search', kwargs={'search_provider': 'users'}))
  24. self.assertContains(response, "have permission to search site", status_code=403)
  25. def test_not_found(self):
  26. """view raises 404 for not found provider"""
  27. response = self.client.get(reverse('misago:search', kwargs={'search_provider': 'nada'}))
  28. self.assertEqual(response.status_code, 404)
  29. def test_provider_no_permission(self):
  30. """provider raises 403 without permission"""
  31. override_acl(self.user, {'can_search_users': 0})
  32. response = self.client.get(reverse('misago:search', kwargs={'search_provider': 'users'}))
  33. self.assertContains(response, "have permission to search users", status_code=403)
  34. def test_provider(self):
  35. """provider displays no script page"""
  36. response = self.client.get(reverse('misago:search', kwargs={'search_provider': 'threads'}))
  37. self.assertContains(response, "Loading search...")