diff options
| author | Aymeric Augustin <aymeric.augustin@m4x.org> | 2013-08-04 11:01:01 +0200 |
|---|---|---|
| committer | Aymeric Augustin <aymeric.augustin@m4x.org> | 2013-08-04 11:04:58 +0200 |
| commit | 2eac9899856d0e19c8e2df02256f2e8c4bdb5344 (patch) | |
| tree | 59855f10e0303c489f67431c70d83e192713c43f /tests | |
| parent | ccef8b2aa26201ec1f3c4d3be6e69f52edf51144 (diff) | |
[1.6.x] Fixed #20822 -- Set content type of default error pages to 'text/html'.
Thanks Jimmy Song for the patch.
Backport of 7843775 from master.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/view_tests/tests/test_defaults.py | 20 | ||||
| -rw-r--r-- | tests/view_tests/urls.py | 4 | ||||
| -rw-r--r-- | tests/view_tests/views.py | 11 |
3 files changed, 29 insertions, 6 deletions
diff --git a/tests/view_tests/tests/test_defaults.py b/tests/view_tests/tests/test_defaults.py index 5efd338d34..df891add7e 100644 --- a/tests/view_tests/tests/test_defaults.py +++ b/tests/view_tests/tests/test_defaults.py @@ -2,7 +2,8 @@ from __future__ import absolute_import, unicode_literals from django.contrib.contenttypes.models import ContentType from django.test import TestCase -from django.test.utils import setup_test_template_loader, restore_template_loaders +from django.test.utils import (setup_test_template_loader, + restore_template_loaders, override_settings) from ..models import Author, Article, UrlArticle @@ -59,3 +60,20 @@ class DefaultsTests(TestCase): article = UrlArticle.objects.get(pk=1) self.assertTrue(getattr(article.get_absolute_url, 'purge', False), 'The attributes of the original get_absolute_url must be added.') + + @override_settings(DEFAULT_CONTENT_TYPE="text/xml") + def test_default_content_type_is_text_html(self): + """ + Content-Type of the default error responses is text/html. Refs #20822. + """ + response = self.client.get('/views/raises400/') + self.assertEqual(response['Content-Type'], 'text/html') + + response = self.client.get('/views/raises403/') + self.assertEqual(response['Content-Type'], 'text/html') + + response = self.client.get('/views/non_existing_url/') + self.assertEqual(response['Content-Type'], 'text/html') + + response = self.client.get('/views/server_error/') + self.assertEqual(response['Content-Type'], 'text/html') diff --git a/tests/view_tests/urls.py b/tests/view_tests/urls.py index d792e47ddf..b0c06a1e56 100644 --- a/tests/view_tests/urls.py +++ b/tests/view_tests/urls.py @@ -47,8 +47,10 @@ urlpatterns = patterns('', # a view that raises an exception for the debug view (r'raises/$', views.raises), - (r'raises404/$', views.raises404), + + (r'raises400/$', views.raises400), (r'raises403/$', views.raises403), + (r'raises404/$', views.raises404), # i18n views (r'^i18n/', include('django.conf.urls.i18n')), diff --git a/tests/view_tests/views.py b/tests/view_tests/views.py index 1cfafa4333..5fcf1703d4 100644 --- a/tests/view_tests/views.py +++ b/tests/view_tests/views.py @@ -2,7 +2,7 @@ from __future__ import absolute_import import sys -from django.core.exceptions import PermissionDenied +from django.core.exceptions import PermissionDenied, SuspiciousOperation from django.core.urlresolvers import get_resolver from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import render_to_response, render @@ -31,13 +31,16 @@ def raises(request): except Exception: return technical_500_response(request, *sys.exc_info()) -def raises404(request): - resolver = get_resolver(None) - resolver.resolve('') +def raises400(request): + raise SuspiciousOperation def raises403(request): raise PermissionDenied +def raises404(request): + resolver = get_resolver(None) + resolver.resolve('') + def redirect(request): """ Forces an HTTP redirect. |
