mirror of
https://github.com/jazzband/django-configurations.git
synced 2026-03-16 22:20:27 +00:00
Remove deprecated default fields only from the global
And keep user defined values
This commit is contained in:
parent
bb2523ddb9
commit
45a4557efe
3 changed files with 14 additions and 4 deletions
|
|
@ -31,7 +31,6 @@ class ConfigurationBase(type):
|
|||
if parents:
|
||||
for base in bases[::-1]:
|
||||
settings_vars.update(uppercase_attributes(base))
|
||||
attrs = dict(settings_vars, **attrs)
|
||||
|
||||
deprecated_settings = {
|
||||
# DEFAULT_HASHING_ALGORITHM is always deprecated, as it's a
|
||||
|
|
@ -51,11 +50,12 @@ class ConfigurationBase(type):
|
|||
# PASSWORD_RESET_TIMEOUT_DAYS is deprecated in favor of
|
||||
# PASSWORD_RESET_TIMEOUT in Django 3.1
|
||||
# https://github.com/django/django/commit/226ebb17290b604ef29e82fb5c1fbac3594ac163#diff-ec2bed07bb264cb95a80f08d71a47c06R163-R170
|
||||
if "PASSWORD_RESET_TIMEOUT" in attrs:
|
||||
if "PASSWORD_RESET_TIMEOUT" in settings_vars:
|
||||
deprecated_settings.add("PASSWORD_RESET_TIMEOUT_DAYS")
|
||||
for deprecated_setting in deprecated_settings:
|
||||
if deprecated_setting in attrs:
|
||||
del attrs[deprecated_setting]
|
||||
if deprecated_setting in settings_vars:
|
||||
del settings_vars[deprecated_setting]
|
||||
attrs = {**settings_vars, **attrs}
|
||||
|
||||
return super().__new__(cls, name, bases, attrs)
|
||||
|
||||
|
|
|
|||
|
|
@ -71,3 +71,7 @@ class Test(Configuration):
|
|||
@classmethod
|
||||
def post_setup(cls):
|
||||
cls.POST_SETUP_TEST_SETTING = 7
|
||||
|
||||
|
||||
class TestWithDefaultSetExplicitely(Test):
|
||||
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
||||
|
|
|
|||
|
|
@ -55,6 +55,12 @@ class MainTests(TestCase):
|
|||
self.assertEqual(repr(Configuration),
|
||||
"<Configuration 'configurations.base.Configuration'>")
|
||||
|
||||
def test_deprecated_settings_but_set_by_user(self):
|
||||
from tests.settings.main import TestWithDefaultSetExplicitely
|
||||
TestWithDefaultSetExplicitely.setup()
|
||||
self.assertEqual(TestWithDefaultSetExplicitely.DEFAULT_AUTO_FIELD,
|
||||
"django.db.models.BigAutoField")
|
||||
|
||||
def test_repr(self):
|
||||
from tests.settings.main import Test
|
||||
self.assertEqual(repr(Test),
|
||||
|
|
|
|||
Loading…
Reference in a new issue