Fixed #26427 -- Ensured deleted setting doesn't appear in dir(settings)
This commit is contained in:
parent
57f76be35e
commit
669c29c8f4
|
@ -168,7 +168,10 @@ class UserSettingsHolder(BaseSettings):
|
||||||
super(UserSettingsHolder, self).__delattr__(name)
|
super(UserSettingsHolder, self).__delattr__(name)
|
||||||
|
|
||||||
def __dir__(self):
|
def __dir__(self):
|
||||||
return list(self.__dict__) + dir(self.default_settings)
|
return sorted(
|
||||||
|
s for s in list(self.__dict__) + dir(self.default_settings)
|
||||||
|
if s not in self._deleted
|
||||||
|
)
|
||||||
|
|
||||||
def is_overridden(self, setting):
|
def is_overridden(self, setting):
|
||||||
deleted = (setting in self._deleted)
|
deleted = (setting in self._deleted)
|
||||||
|
|
|
@ -256,6 +256,8 @@ class SettingsTests(SimpleTestCase):
|
||||||
del settings.USE_L10N
|
del settings.USE_L10N
|
||||||
with self.assertRaises(AttributeError):
|
with self.assertRaises(AttributeError):
|
||||||
getattr(settings, 'USE_L10N')
|
getattr(settings, 'USE_L10N')
|
||||||
|
self.assertNotIn('USE_I18N', dir(settings))
|
||||||
|
self.assertNotIn('USE_L10N', dir(settings))
|
||||||
self.assertEqual(settings.USE_I18N, previous_i18n)
|
self.assertEqual(settings.USE_I18N, previous_i18n)
|
||||||
self.assertEqual(settings.USE_L10N, previous_l10n)
|
self.assertEqual(settings.USE_L10N, previous_l10n)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue