Fixed #30057 -- Fixed diffsettings ignoring custom configured settings.

Regression in 49b679371f.
This commit is contained in:
orlnub123 2019-01-11 11:11:36 -05:00 committed by Tim Graham
parent abf8e390a4
commit 573f44d62f
3 changed files with 4 additions and 4 deletions

View File

@ -1,9 +1,9 @@
from django.core.management.base import BaseCommand
def module_to_dict(module, omittable=lambda k: k.startswith('_')):
def module_to_dict(module, omittable=lambda k: k.startswith('_') or not k.isupper()):
"""Convert a module namespace to a Python dictionary."""
return {k: repr(v) for k, v in module.__dict__.items() if not omittable(k)}
return {k: repr(getattr(module, k)) for k in dir(module) if not omittable(k)}
class Command(BaseCommand):

View File

@ -5,5 +5,5 @@ from django.conf import settings
from django.core.management import execute_from_command_line
if __name__ == '__main__':
settings.configure(DEBUG=True)
settings.configure(DEBUG=True, CUSTOM=1)
execute_from_command_line(sys.argv)

View File

@ -2236,7 +2236,7 @@ class DiffSettings(AdminScriptTestCase):
def test_settings_configured(self):
out, err = self.run_manage(['diffsettings'], configured_settings=True)
self.assertNoOutput(err)
self.assertOutput(out, 'DEBUG = True')
self.assertOutput(out, 'CUSTOM = 1 ###\nDEBUG = True')
def test_all(self):
"""The all option also shows settings with the default value."""