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