test_use_l10n.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import sys
  2. from types import ModuleType
  3. from django.conf import USE_L10N_DEPRECATED_MSG, Settings, settings
  4. from django.test import TestCase, ignore_warnings
  5. from django.utils.deprecation import RemovedInDjango50Warning
  6. class DeprecationTests(TestCase):
  7. msg = USE_L10N_DEPRECATED_MSG
  8. def test_override_settings_warning(self):
  9. # Warning is raised when USE_L10N is set in UserSettingsHolder (used by
  10. # the @override_settings decorator).
  11. with self.assertRaisesMessage(RemovedInDjango50Warning, self.msg):
  12. with self.settings(USE_L10N=True):
  13. pass
  14. def test_settings_init_warning(self):
  15. settings_module = ModuleType("fake_settings_module")
  16. settings_module.SECRET_KEY = "foo"
  17. settings_module.USE_TZ = True
  18. settings_module.USE_L10N = False
  19. sys.modules["fake_settings_module"] = settings_module
  20. try:
  21. with self.assertRaisesMessage(RemovedInDjango50Warning, self.msg):
  22. Settings("fake_settings_module")
  23. finally:
  24. del sys.modules["fake_settings_module"]
  25. def test_access_warning(self):
  26. with self.assertRaisesMessage(RemovedInDjango50Warning, self.msg):
  27. settings.USE_L10N
  28. # Works a second time.
  29. with self.assertRaisesMessage(RemovedInDjango50Warning, self.msg):
  30. settings.USE_L10N
  31. @ignore_warnings(category=RemovedInDjango50Warning)
  32. def test_access(self):
  33. with self.settings(USE_L10N=False):
  34. self.assertIs(settings.USE_L10N, False)
  35. # Works a second time.
  36. self.assertIs(settings.USE_L10N, False)