test_views.py 2.2 KB

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