test_views.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. def test_no_permission(self):
  24. """view validates permission to search forum"""
  25. override_acl(self.user, {
  26. 'can_search': 0
  27. })
  28. response = self.client.get(
  29. reverse('misago:search', kwargs={'search_provider': 'users'}))
  30. self.assertContains(
  31. response, "have permission to search site", status_code=403)
  32. def test_not_found(self):
  33. """view raises 404 for not found provider"""
  34. response = self.client.get(
  35. reverse('misago:search', kwargs={'search_provider': 'nada'}))
  36. self.assertEqual(response.status_code, 404)
  37. def test_provider_no_permission(self):
  38. """provider raises 403 without permission"""
  39. override_acl(self.user, {
  40. 'can_search_users': 0
  41. })
  42. response = self.client.get(
  43. reverse('misago:search', kwargs={'search_provider': 'users'}))
  44. self.assertContains(
  45. response, "have permission to search users", status_code=403)
  46. def test_provider(self):
  47. """provider displays no script page"""
  48. response = self.client.get(
  49. reverse('misago:search', kwargs={'search_provider': 'threads'}))
  50. self.assertContains(response, "Loading search...")