test_errorpages.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. from django.core.urlresolvers import reverse
  2. from django.test import 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 ErrorPageViewsTests(TestCase):
  7. urls = 'misago.core.testproject.urls'
  8. def test_permission_denied_returns_403(self):
  9. """permission_denied error page has no show-stoppers"""
  10. response = self.client.get(reverse('raise_misago_403'))
  11. self.assertEqual(response.status_code, 403)
  12. def test_page_not_found_returns_404(self):
  13. """page_not_found error page has no show-stoppers"""
  14. response = self.client.get(reverse('raise_misago_404'))
  15. self.assertEqual(response.status_code, 404)
  16. class CustomErrorPagesTests(TestCase):
  17. urls = 'misago.core.testproject.urlswitherrorhandlers'
  18. def setUp(self):
  19. self.misago_request = RequestFactory().get(reverse('misago:index'))
  20. self.site_request = RequestFactory().get(reverse('raise_403'))
  21. def test_shared_403_decorator(self):
  22. """shared_403_decorator calls correct error handler"""
  23. response = self.client.get(reverse('raise_misago_403'))
  24. self.assertEqual(response.status_code, 403)
  25. response = self.client.get(reverse('raise_403'))
  26. self.assertEqual(response.status_code, 403)
  27. self.assertIn("Custom 403", response.content)
  28. response = mock_custom_403_error_page(self.misago_request)
  29. self.assertNotIn("Custom 403", response.content)
  30. response = mock_custom_403_error_page(self.site_request)
  31. self.assertIn("Custom 403", response.content)
  32. def test_shared_404_decorator(self):
  33. """shared_404_decorator calls correct error handler"""
  34. response = self.client.get(reverse('raise_misago_404'))
  35. self.assertEqual(response.status_code, 404)
  36. response = self.client.get(reverse('raise_404'))
  37. self.assertEqual(response.status_code, 404)
  38. self.assertIn("Custom 404", response.content)
  39. response = mock_custom_404_error_page(self.misago_request)
  40. self.assertNotIn("Custom 404", response.content)
  41. response = mock_custom_404_error_page(self.site_request)
  42. self.assertIn("Custom 404", response.content)