mirror of
https://github.com/jazzband/django-constance.git
synced 2026-03-16 22:40:24 +00:00
Make CONSTANCE_ADDITIONAL_FIELDS more flexible
Allow the field config to be a tuple, and allow the config dict to be omitted
This commit is contained in:
parent
468daf5eea
commit
8101d7cc84
3 changed files with 15 additions and 2 deletions
|
|
@ -47,7 +47,10 @@ FIELDS = {
|
|||
|
||||
def parse_additional_fields(fields):
|
||||
for key in fields:
|
||||
field = fields[key]
|
||||
field = list(fields[key])
|
||||
|
||||
if len(field) == 1:
|
||||
field.append({})
|
||||
|
||||
field[0] = import_string(field[0])
|
||||
|
||||
|
|
@ -58,6 +61,8 @@ def parse_additional_fields(fields):
|
|||
if 'widget_kwargs' in field[1]:
|
||||
del field[1]['widget_kwargs']
|
||||
|
||||
fields[key] = field
|
||||
|
||||
return fields
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,9 @@ CONSTANCE_ADDITIONAL_FIELDS = {
|
|||
'widget': 'django.forms.Select',
|
||||
'choices': (("-----", None), ("yes", "Yes"), ("no", "No"))
|
||||
}],
|
||||
}
|
||||
# note this intentionally uses a tuple so that we can test immutable
|
||||
'email': ('django.forms.fields.EmailField',),
|
||||
}
|
||||
|
||||
CONSTANCE_CONFIG = {
|
||||
'INT_VALUE': (1, 'some int'),
|
||||
|
|
@ -73,6 +75,7 @@ CONSTANCE_CONFIG = {
|
|||
'TIME_VALUE': (time(23, 59, 59), 'And happy New Year'),
|
||||
'CHOICE_VALUE': ('yes', 'select yes or no', 'yes_no_null_select'),
|
||||
'LINEBREAK_VALUE': ('Spam spam', 'eggs\neggs'),
|
||||
'EMAIL_VALUE': ('test@example.com', 'An email', 'email'),
|
||||
}
|
||||
|
||||
DEBUG = True
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@ class StorageTestsMixin(object):
|
|||
self.assertEqual(self.config.DATE_VALUE, date(2010, 12, 24))
|
||||
self.assertEqual(self.config.TIME_VALUE, time(23, 59, 59))
|
||||
self.assertEqual(self.config.CHOICE_VALUE, 'yes')
|
||||
self.assertEqual(self.config.EMAIL_VALUE, 'test@example.com')
|
||||
|
||||
|
||||
# set values
|
||||
self.config.INT_VALUE = 100
|
||||
|
|
@ -41,6 +43,7 @@ class StorageTestsMixin(object):
|
|||
self.config.DATE_VALUE = date(2001, 12, 20)
|
||||
self.config.TIME_VALUE = time(1, 59, 0)
|
||||
self.config.CHOICE_VALUE = 'no'
|
||||
self.config.EMAIL_VALUE = 'foo@bar.com'
|
||||
|
||||
# read again
|
||||
self.assertEqual(self.config.INT_VALUE, 100)
|
||||
|
|
@ -54,6 +57,8 @@ class StorageTestsMixin(object):
|
|||
self.assertEqual(self.config.DATE_VALUE, date(2001, 12, 20))
|
||||
self.assertEqual(self.config.TIME_VALUE, time(1, 59, 0))
|
||||
self.assertEqual(self.config.CHOICE_VALUE, 'no')
|
||||
self.assertEqual(self.config.EMAIL_VALUE, 'foo@bar.com')
|
||||
|
||||
|
||||
def test_nonexistent(self):
|
||||
try:
|
||||
|
|
|
|||
Loading…
Reference in a new issue