test_admin_views.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. from django.test import TestCase
  2. from django.urls import reverse
  3. from ...users.test import create_test_user
  4. from ..test import AdminTestCase
  5. from ..views import get_protected_namespace
  6. class AdminViewAccessTests(AdminTestCase):
  7. def test_admin_denies_non_staff_non_superuser(self):
  8. """admin middleware rejects user thats non staff and non superuser"""
  9. self.user.is_staff = False
  10. self.user.is_superuser = False
  11. self.user.save()
  12. response = self.client.get(reverse("misago:admin:index"))
  13. self.assertContains(response, "Sign in")
  14. def test_admin_denies_non_staff_superuser(self):
  15. """admin middleware rejects user thats non staff and superuser"""
  16. self.user.is_staff = False
  17. self.user.is_superuser = True
  18. self.user.save()
  19. response = self.client.get(reverse("misago:admin:index"))
  20. self.assertContains(response, "Sign in")
  21. def test_admin_passess_in_staff_non_superuser(self):
  22. """admin middleware passess user thats staff and non superuser"""
  23. self.user.is_staff = True
  24. self.user.is_superuser = False
  25. self.user.save()
  26. response = self.client.get(reverse("misago:admin:index"))
  27. self.assertContains(response, self.user.username)
  28. def test_admin_passess_in_staff_superuser(self):
  29. """admin middleware passess user thats staff and superuser"""
  30. self.user.is_staff = True
  31. self.user.is_superuser = True
  32. self.user.save()
  33. response = self.client.get(reverse("misago:admin:index"))
  34. self.assertContains(response, self.user.username)
  35. class Admin404ErrorTests(AdminTestCase):
  36. def test_list_search_unicode_handling(self):
  37. """querystring creation handles unicode strings"""
  38. test_link = "%stotally-errored/" % reverse("misago:admin:index")
  39. response = self.client.get(test_link)
  40. self.assertContains(
  41. response, "Requested page could not be found.", status_code=404
  42. )
  43. class AdminGenericViewsTests(AdminTestCase):
  44. def test_view_redirected_queryvar(self):
  45. """querystring redirected value is handled"""
  46. test_link = reverse("misago:admin:users:accounts:index")
  47. # request resulted in redirect with redirected=1 bit
  48. response = self.client.get("%s?username=lorem" % test_link)
  49. self.assertEqual(response.status_code, 302)
  50. self.assertIn("redirected=1", response["location"])
  51. # request with flag muted redirect
  52. response = self.client.get("%s?redirected=1&username=lorem" % test_link)
  53. self.assertEqual(response.status_code, 200)
  54. def test_list_search_unicode_handling(self):
  55. """querystring creation handles unicode strings"""
  56. test_link = reverse("misago:admin:users:accounts:index")
  57. response = self.client.get("%s?redirected=1&username=%s" % (test_link, "łut"))
  58. self.assertEqual(response.status_code, 200)