summaryrefslogtreecommitdiff
path: root/tests/settings_tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/settings_tests')
-rw-r--r--tests/settings_tests/test_file_charset.py40
1 files changed, 40 insertions, 0 deletions
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')