diff options
| author | Jannis Leidel <jannis@leidel.info> | 2011-08-12 14:15:31 +0000 |
|---|---|---|
| committer | Jannis Leidel <jannis@leidel.info> | 2011-08-12 14:15:31 +0000 |
| commit | 1ca6e9b9e24240033349c93b05902c79c0a25bbb (patch) | |
| tree | c6d4b1fca5b881e62481094cd2cedcaaa3a82af9 /tests | |
| parent | 958e049d4d90fb5e0fe582eb4339af3c58dd5c07 (diff) | |
Fixed #9847 -- Added 403 response handler. Many thanks to kgrandis, adamnelson, vkryachko, fvox13 and Chris Beaven.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16606 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/regressiontests/views/tests/debug.py | 22 | ||||
| -rw-r--r-- | tests/regressiontests/views/urls.py | 5 | ||||
| -rw-r--r-- | tests/regressiontests/views/views.py | 6 |
3 files changed, 30 insertions, 3 deletions
diff --git a/tests/regressiontests/views/tests/debug.py b/tests/regressiontests/views/tests/debug.py index 012c1c6f90..fc5325d7d7 100644 --- a/tests/regressiontests/views/tests/debug.py +++ b/tests/regressiontests/views/tests/debug.py @@ -6,6 +6,8 @@ import sys from django.conf import settings from django.core.files.uploadedfile import SimpleUploadedFile from django.test import TestCase, RequestFactory +from django.test.utils import (setup_test_template_loader, + restore_template_loaders) from django.core.urlresolvers import reverse from django.template import TemplateSyntaxError from django.views.debug import ExceptionReporter @@ -40,6 +42,26 @@ class DebugViewTests(TestCase): self.assertTrue('file_data.txt' in response.content) self.assertFalse('haha' in response.content) + def test_403(self): + # Ensure no 403.html template exists to test the default case. + setup_test_template_loader({}) + try: + response = self.client.get('/views/raises403/') + self.assertContains(response, '<h1>403 Forbidden</h1>', status_code=403) + finally: + restore_template_loaders() + + def test_403_template(self): + # Set up a test 403.html template. + setup_test_template_loader( + {'403.html': 'This is a test template for a 403 Forbidden error.'} + ) + try: + response = self.client.get('/views/raises403/') + self.assertContains(response, 'test template', status_code=403) + finally: + restore_template_loaders() + def test_404(self): response = self.client.get('/views/raises404/') self.assertEqual(response.status_code, 404) diff --git a/tests/regressiontests/views/urls.py b/tests/regressiontests/views/urls.py index 32f03b444e..6af725357b 100644 --- a/tests/regressiontests/views/urls.py +++ b/tests/regressiontests/views/urls.py @@ -39,8 +39,9 @@ urlpatterns = patterns('', (r'^server_error/', 'django.views.defaults.server_error'), # a view that raises an exception for the debug view - (r'^raises/$', views.raises), - (r'^raises404/$', views.raises404), + (r'raises/$', views.raises), + (r'raises404/$', views.raises404), + (r'raises403/$', views.raises403), # i18n views (r'^i18n/', include('django.conf.urls.i18n')), diff --git a/tests/regressiontests/views/views.py b/tests/regressiontests/views/views.py index 7d59257ef7..02f765af1c 100644 --- a/tests/regressiontests/views/views.py +++ b/tests/regressiontests/views/views.py @@ -1,8 +1,9 @@ import sys from django import forms -from django.http import HttpResponse, HttpResponseRedirect +from django.core.exceptions import PermissionDenied from django.core.urlresolvers import get_resolver +from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import render_to_response, render from django.template import Context, RequestContext, TemplateDoesNotExist from django.views.debug import technical_500_response, SafeExceptionReporterFilter @@ -53,6 +54,9 @@ def raises404(request): resolver = get_resolver(None) resolver.resolve('') +def raises403(request): + raise PermissionDenied + def redirect(request): """ Forces an HTTP redirect. |
