test_errorpages.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. from django.core.urlresolvers import reverse
  2. from django.test import Client, TestCase
  3. from django.test.client import RequestFactory
  4. from misago.core.testproject.views import (mock_custom_403_error_page,
  5. mock_custom_404_error_page)
  6. class CSRFErrorViewTests(TestCase):
  7. def test_csrf_failure(self):
  8. """csrf_failure error page has no show-stoppers"""
  9. csrf_client = Client(enforce_csrf_checks=True)
  10. response = csrf_client.post(reverse('misago:index'),
  11. data={'eric': 'fish'})
  12. self.assertEqual(response.status_code, 403)
  13. self.assertIn("Request blocked", response.content)
  14. class ErrorPageViewsTests(TestCase):
  15. urls = 'misago.core.testproject.urls'
  16. def test_permission_denied_returns_403(self):
  17. """permission_denied error page has no show-stoppers"""
  18. response = self.client.get(reverse('raise_misago_403'))
  19. self.assertEqual(response.status_code, 403)
  20. self.assertIn("Page not available", response.content)
  21. def test_page_not_found_returns_404(self):
  22. """page_not_found error page has no show-stoppers"""
  23. response = self.client.get(reverse('raise_misago_404'))
  24. self.assertEqual(response.status_code, 404)
  25. self.assertIn("Page not found", response.content)
  26. def test_not_allowed_returns_405(self):
  27. """not allowed error page has no showstoppers"""
  28. response = self.client.get(reverse('raise_misago_405'))
  29. self.assertEqual(response.status_code, 405)
  30. self.assertIn("Wrong way", response.content)
  31. class CustomErrorPagesTests(TestCase):
  32. urls = 'misago.core.testproject.urlswitherrorhandlers'
  33. def setUp(self):
  34. self.misago_request = RequestFactory().get(reverse('misago:index'))
  35. self.site_request = RequestFactory().get(reverse('raise_403'))
  36. self.misago_request.preloaded_ember_data = {}
  37. self.site_request.preloaded_ember_data = {}
  38. def test_shared_403_decorator(self):
  39. """shared_403_decorator calls correct error handler"""
  40. response = self.client.get(reverse('raise_misago_403'))
  41. self.assertEqual(response.status_code, 403)
  42. response = self.client.get(reverse('raise_403'))
  43. self.assertEqual(response.status_code, 403)
  44. self.assertIn("Custom 403", response.content)
  45. response = mock_custom_403_error_page(self.misago_request)
  46. self.assertNotIn("Custom 403", response.content)
  47. response = mock_custom_403_error_page(self.site_request)
  48. self.assertIn("Custom 403", response.content)
  49. def test_shared_404_decorator(self):
  50. """shared_404_decorator calls correct error handler"""
  51. response = self.client.get(reverse('raise_misago_404'))
  52. self.assertEqual(response.status_code, 404)
  53. response = self.client.get(reverse('raise_404'))
  54. self.assertEqual(response.status_code, 404)
  55. self.assertIn("Custom 404", response.content)
  56. response = mock_custom_404_error_page(self.misago_request)
  57. self.assertNotIn("Custom 404", response.content)
  58. response = mock_custom_404_error_page(self.site_request)
  59. self.assertIn("Custom 404", response.content)