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:
|
if parents:
|
||||||
for base in bases[::-1]:
|
for base in bases[::-1]:
|
||||||
settings_vars.update(uppercase_attributes(base))
|
settings_vars.update(uppercase_attributes(base))
|
||||||
attrs = dict(settings_vars, **attrs)
|
|
||||||
|
|
||||||
deprecated_settings = {
|
deprecated_settings = {
|
||||||
# DEFAULT_HASHING_ALGORITHM is always deprecated, as it's a
|
# 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_DAYS is deprecated in favor of
|
||||||
# PASSWORD_RESET_TIMEOUT in Django 3.1
|
# PASSWORD_RESET_TIMEOUT in Django 3.1
|
||||||
# https://github.com/django/django/commit/226ebb17290b604ef29e82fb5c1fbac3594ac163#diff-ec2bed07bb264cb95a80f08d71a47c06R163-R170
|
# 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")
|
deprecated_settings.add("PASSWORD_RESET_TIMEOUT_DAYS")
|
||||||
for deprecated_setting in deprecated_settings:
|
for deprecated_setting in deprecated_settings:
|
||||||
if deprecated_setting in attrs:
|
if deprecated_setting in settings_vars:
|
||||||
del attrs[deprecated_setting]
|
del settings_vars[deprecated_setting]
|
||||||
|
attrs = {**settings_vars, **attrs}
|
||||||
|
|
||||||
return super().__new__(cls, name, bases, attrs)
|
return super().__new__(cls, name, bases, attrs)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -71,3 +71,7 @@ class Test(Configuration):
|
||||||
@classmethod
|
@classmethod
|
||||||
def post_setup(cls):
|
def post_setup(cls):
|
||||||
cls.POST_SETUP_TEST_SETTING = 7
|
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),
|
self.assertEqual(repr(Configuration),
|
||||||
"<Configuration 'configurations.base.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):
|
def test_repr(self):
|
||||||
from tests.settings.main import Test
|
from tests.settings.main import Test
|
||||||
self.assertEqual(repr(Test),
|
self.assertEqual(repr(Test),
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue