tests_custom_error_handlers.py 888 B

123456789101112131415161718192021222324252627282930
  1. from django.conf.urls import url
  2. from django.core.exceptions import PermissionDenied
  3. from django.template.response import TemplateResponse
  4. from django.test import SimpleTestCase, override_settings
  5. def template_response_error_handler(request, exception=None):
  6. return TemplateResponse(request, 'test_handler.html', status=403)
  7. def permission_denied_view(request):
  8. raise PermissionDenied
  9. urlpatterns = [
  10. url(r'^$', permission_denied_view),
  11. ]
  12. handler403 = template_response_error_handler
  13. @override_settings(ROOT_URLCONF='handlers.tests_custom_error_handlers')
  14. class CustomErrorHandlerTests(SimpleTestCase):
  15. def test_handler_renders_template_response(self):
  16. """
  17. BaseHandler should render TemplateResponse if necessary.
  18. """
  19. response = self.client.get('/')
  20. self.assertContains(response, 'Error handler content', status_code=403)