From 0cd465b63aa7c03a3d14bd5fd6543628d585f8da Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Tue, 2 Oct 2018 20:45:19 -0700 Subject: Fixed #29817 -- Deprecated settings.FILE_CHARSET. --- tests/settings_tests/test_file_charset.py | 40 +++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 tests/settings_tests/test_file_charset.py (limited to 'tests/settings_tests') diff --git a/tests/settings_tests/test_file_charset.py b/tests/settings_tests/test_file_charset.py new file mode 100644 index 0000000000..1be96a26d2 --- /dev/null +++ b/tests/settings_tests/test_file_charset.py @@ -0,0 +1,40 @@ +import sys +from types import ModuleType + +from django.conf import FILE_CHARSET_DEPRECATED_MSG, Settings, settings +from django.test import SimpleTestCase, ignore_warnings +from django.utils.deprecation import RemovedInDjango31Warning + + +class DeprecationTests(SimpleTestCase): + msg = FILE_CHARSET_DEPRECATED_MSG + + def test_override_settings_warning(self): + with self.assertRaisesMessage(RemovedInDjango31Warning, self.msg): + with self.settings(FILE_CHARSET='latin1'): + pass + + def test_settings_init_warning(self): + settings_module = ModuleType('fake_settings_module') + settings_module.FILE_CHARSET = 'latin1' + settings_module.SECRET_KEY = 'ABC' + sys.modules['fake_settings_module'] = settings_module + try: + with self.assertRaisesMessage(RemovedInDjango31Warning, self.msg): + Settings('fake_settings_module') + finally: + del sys.modules['fake_settings_module'] + + def test_access_warning(self): + with self.assertRaisesMessage(RemovedInDjango31Warning, self.msg): + settings.FILE_CHARSET + # Works a second time. + with self.assertRaisesMessage(RemovedInDjango31Warning, self.msg): + settings.FILE_CHARSET + + @ignore_warnings(category=RemovedInDjango31Warning) + def test_access(self): + with self.settings(FILE_CHARSET='latin1'): + self.assertEqual(settings.FILE_CHARSET, 'latin1') + # Works a second time. + self.assertEqual(settings.FILE_CHARSET, 'latin1') -- cgit v1.3