diff options
| author | Tim Graham <timograham@gmail.com> | 2017-02-16 07:59:44 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-02-16 07:59:44 -0500 |
| commit | 80493b087136a151bf4d11ba394f36e047159040 (patch) | |
| tree | 8b9df561f9eb919deda285da05b6d4b3c1f7c71b /tests | |
| parent | b008f7cc5655d01817a8825e6317877b43c92181 (diff) | |
Fixed #27829 -- Deprecated settings.DEFAULT_CONTENT_TYPE.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/view_tests/tests/test_default_content_type.py | 44 | ||||
| -rw-r--r-- | tests/view_tests/tests/test_defaults.py | 17 |
2 files changed, 44 insertions, 17 deletions
diff --git a/tests/view_tests/tests/test_default_content_type.py b/tests/view_tests/tests/test_default_content_type.py new file mode 100644 index 0000000000..db5f364f26 --- /dev/null +++ b/tests/view_tests/tests/test_default_content_type.py @@ -0,0 +1,44 @@ +import sys +from types import ModuleType + +from django.conf import Settings +from django.test import SimpleTestCase, ignore_warnings +from django.utils.deprecation import RemovedInDjango30Warning + + +class DefaultContentTypeTests(SimpleTestCase): + msg = 'The DEFAULT_CONTENT_TYPE setting is deprecated.' + + @ignore_warnings(category=RemovedInDjango30Warning) + def test_default_content_type_is_text_html(self): + """ + Content-Type of the default error responses is text/html. Refs #20822. + """ + with self.settings(DEFAULT_CONTENT_TYPE='text/xml'): + response = self.client.get('/raises400/') + self.assertEqual(response['Content-Type'], 'text/html') + + response = self.client.get('/raises403/') + self.assertEqual(response['Content-Type'], 'text/html') + + response = self.client.get('/nonexistent_url/') + self.assertEqual(response['Content-Type'], 'text/html') + + response = self.client.get('/server_error/') + self.assertEqual(response['Content-Type'], 'text/html') + + def test_override_settings_warning(self): + with self.assertRaisesMessage(RemovedInDjango30Warning, self.msg): + with self.settings(DEFAULT_CONTENT_TYPE='text/xml'): + pass + + def test_settings_init_warning(self): + settings_module = ModuleType('fake_settings_module') + settings_module.DEFAULT_CONTENT_TYPE = 'text/xml' + settings_module.SECRET_KEY = 'abc' + sys.modules['fake_settings_module'] = settings_module + try: + with self.assertRaisesMessage(RemovedInDjango30Warning, self.msg): + Settings('fake_settings_module') + finally: + del sys.modules['fake_settings_module'] diff --git a/tests/view_tests/tests/test_defaults.py b/tests/view_tests/tests/test_defaults.py index 62c3fc7619..3ab109a57c 100644 --- a/tests/view_tests/tests/test_defaults.py +++ b/tests/view_tests/tests/test_defaults.py @@ -104,23 +104,6 @@ class DefaultsTests(TestCase): 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('/raises400/') - self.assertEqual(response['Content-Type'], 'text/html') - - response = self.client.get('/raises403/') - self.assertEqual(response['Content-Type'], 'text/html') - - response = self.client.get('/nonexistent_url/') - self.assertEqual(response['Content-Type'], 'text/html') - - response = self.client.get('/server_error/') - self.assertEqual(response['Content-Type'], 'text/html') - def test_custom_templates_wrong(self): """ Default error views should raise TemplateDoesNotExist when passed a |
