test_views.py 2.2 KB

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