2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-07-04 04:30:56 +00:00

Extra unit testing for settings forms / views

This commit is contained in:
Oliver Walters
2020-11-13 11:50:58 +11:00
parent d777549a1a
commit 01ff562dcd
4 changed files with 189 additions and 14 deletions

View File

@ -165,6 +165,11 @@ class InvenTreeSetting(models.Model):
verbose_name = "InvenTree Setting"
verbose_name_plural = "InvenTree Settings"
def save(self, *args, **kwargs):
self.clean()
super().save(*args, **kwargs)
@classmethod
def get_setting_name(cls, key):
"""
@ -281,20 +286,15 @@ class InvenTreeSetting(models.Model):
try:
setting = InvenTreeSetting.objects.filter(key__iexact=key).first()
except OperationalError:
# Settings table has not been created yet!
return None
except (ValueError, InvenTreeSetting.DoesNotExist):
try:
# Attempt Create the setting if it does not exist
setting = InvenTreeSetting.create(
key=key,
value=InvenTreeSetting.get_default_value(key)
)
except OperationalError:
# Settings table has not been created yet
setting = None
setting = None
if not setting:
# Attempt Create the setting if it does not exist
setting = InvenTreeSetting.objects.create(
key=key,
value=InvenTreeSetting.get_default_value(key)
)
return setting
@ -403,6 +403,9 @@ class InvenTreeSetting(models.Model):
if validator is not None:
self.run_validator(validator)
if self.is_bool():
self.value = InvenTree.helpers.str2bool(self.value)
def run_validator(self, validator):
"""
Run a validator against the 'value' field for this InvenTreeSetting object.