From 226a91718bdf40e0d35232bc4636f0a9bbb279a7 Mon Sep 17 00:00:00 2001 From: Oliver Walters Date: Tue, 20 Oct 2020 08:29:06 +1100 Subject: [PATCH] Add a simple unit test for the settings model --- InvenTree/common/models.py | 2 +- InvenTree/common/tests.py | 32 +++++++++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index 0c110d1366..731c37c6ce 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -97,7 +97,7 @@ class InvenTreeSetting(models.Model): else: return - setting.value = value + setting.value = str(value) setting.save() key = models.CharField(max_length=50, blank=False, unique=True, help_text=_('Settings key (must be unique - case insensitive')) diff --git a/InvenTree/common/tests.py b/InvenTree/common/tests.py index 5c6171a65c..a5d32dc3d6 100644 --- a/InvenTree/common/tests.py +++ b/InvenTree/common/tests.py @@ -2,8 +2,9 @@ from __future__ import unicode_literals from django.test import TestCase +from django.contrib.auth import get_user_model -from .models import Currency +from .models import Currency, InvenTreeSetting class CurrencyTest(TestCase): @@ -17,3 +18,32 @@ class CurrencyTest(TestCase): # Simple test for now (improve this later!) self.assertEqual(Currency.objects.count(), 2) + + +class SettingsTest(TestCase): + """ + Tests for the 'settings' model + """ + + def setUp(self): + + User = get_user_model() + + self.user = User.objects.create_user('username', 'user@email.com', 'password') + self.user.is_staff = True + self.user.save() + + self.client.login(username='username', password='password') + + def test_defaults(self): + """ + Populate the settings with default values + """ + + for key in InvenTreeSetting.DEFAULT_VALUES.keys(): + + value = InvenTreeSetting.DEFAULT_VALUES[key] + + InvenTreeSetting.set_setting(key, value, self.user) + + self.assertEqual(str(value), InvenTreeSetting.get_setting(key))