Commit 669c29c8 authored by Claude Paroz's avatar Claude Paroz
Browse files

Fixed #26427 -- Ensured deleted setting doesn't appear in dir(settings)

parent 57f76be3
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -168,7 +168,10 @@ class UserSettingsHolder(BaseSettings):
            super(UserSettingsHolder, self).__delattr__(name)

    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):
        deleted = (setting in self._deleted)
+2 −0
Original line number Diff line number Diff line
@@ -256,6 +256,8 @@ class SettingsTests(SimpleTestCase):
            del settings.USE_L10N
            with self.assertRaises(AttributeError):
                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_L10N, previous_l10n)