diff options
| author | Tim Graham <timograham@gmail.com> | 2014-12-03 09:44:09 -0500 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2014-12-03 14:17:05 -0500 |
| commit | 5219a02fdadaaa76f1335f6a668c23dbf5790dac (patch) | |
| tree | f2ffe3ff90a56dc6a351d956377827b8b0cd7d1e | |
| parent | 38960a5dd8dc2f3a6b78439ecabc99507656934d (diff) | |
[1.7.x] Added a test to verify headers set by default middleware; refs #23939.
Backport of 50c1d8f24b0d04c813b3dd34720df86446091afa from master
| -rw-r--r-- | tests/project_template/__init__.py | 0 | ||||
| -rw-r--r-- | tests/project_template/test_settings.py | 29 | ||||
| -rw-r--r-- | tests/project_template/urls.py | 7 | ||||
| -rw-r--r-- | tests/project_template/views.py | 5 |
4 files changed, 41 insertions, 0 deletions
diff --git a/tests/project_template/__init__.py b/tests/project_template/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/project_template/__init__.py diff --git a/tests/project_template/test_settings.py b/tests/project_template/test_settings.py new file mode 100644 index 0000000000..8998a844c7 --- /dev/null +++ b/tests/project_template/test_settings.py @@ -0,0 +1,29 @@ +import sys +import unittest + +from django.test import TestCase + + +@unittest.skipIf(sys.version_info < (3, 3), + 'Python < 3.3 cannot import the project template because ' + 'django/conf/project_template doesn\'t have an __init__.py file.') +class TestStartProjectSettings(TestCase): + + def test_middleware_classes_headers(self): + """ + Ensure headers sent by the default MIDDLEWARE_CLASSES do not + inadvertently change. For example, we never want "Vary: Cookie" to + appear in the list since it prevents the caching of responses. + """ + from django.conf.project_template.project_name.settings import MIDDLEWARE_CLASSES + + with self.settings( + MIDDLEWARE_CLASSES=MIDDLEWARE_CLASSES, + ROOT_URLCONF='project_template.urls', + ): + response = self.client.get('/empty/') + headers = sorted(response.serialize_headers().split(b'\r\n')) + self.assertEqual(headers, [ + b'Content-Type: text/html; charset=utf-8', + b'X-Frame-Options: SAMEORIGIN', + ]) diff --git a/tests/project_template/urls.py b/tests/project_template/urls.py new file mode 100644 index 0000000000..db0e9bb42e --- /dev/null +++ b/tests/project_template/urls.py @@ -0,0 +1,7 @@ +from django.conf.urls import url + +from . import views + +urlpatterns = [ + url(r'^empty/$', views.empty_view), +] diff --git a/tests/project_template/views.py b/tests/project_template/views.py new file mode 100644 index 0000000000..50e23d1782 --- /dev/null +++ b/tests/project_template/views.py @@ -0,0 +1,5 @@ +from django.http import HttpResponse + + +def empty_view(request, *args, **kwargs): + return HttpResponse('') |
