set_setting fnc + fixed settings test

This commit is contained in:
Matthias 2021-10-10 00:21:02 +02:00
parent b29650f3af
commit c67f2aa2d7
No known key found for this signature in database
GPG Key ID: F50EF5741D33E076
2 changed files with 18 additions and 2 deletions

View File

@ -88,12 +88,23 @@ class SettingsMixin:
return {f'PLUGIN_{self.slug.upper()}_{key}': value for key, value in self.settings.items()}
return None
def _setting_name(self, key):
"""get global name of setting"""
return f'PLUGIN_{self.slug.upper()}_{key}'
def get_setting(self, key):
"""
get plugin setting by key
"""
from common.models import InvenTreeSetting
return InvenTreeSetting.get_setting(f'PLUGIN_{self.slug.upper()}_{key}')
return InvenTreeSetting.get_setting(self._setting_name(key))
def set_setting(self, key, value, user):
"""
set plugin setting by key
"""
from common.models import InvenTreeSetting
return InvenTreeSetting.set_setting(self._setting_name(key), value, user)
class UrlsMixin:

View File

@ -3,6 +3,7 @@
from django.test import TestCase
from django.conf import settings
from django.conf.urls import url, include
from django.contrib.auth import get_user_model
from datetime import datetime
@ -33,6 +34,9 @@ class SettingsMixinTest(BaseMixinDefinition, TestCase):
pass
self.mixin_nothing = NoSettingsCls()
user = get_user_model()
self.test_user = user.objects.create_user('testuser', 'test@testing.com', 'password')
def test_function(self):
# settings variable
self.assertEqual(self.mixin.settings, self.TEST_SETTINGS)
@ -50,7 +54,8 @@ class SettingsMixinTest(BaseMixinDefinition, TestCase):
self.assertEqual(self.mixin.get_setting('ABCD'), '')
self.assertEqual(self.mixin_nothing.get_setting('ABCD'), '')
# right setting
self.assertEqual(self.mixin.get_setting('SETTING1'), '123')
self.assertEqual(self.mixin.set_setting('SETTING1'), '12345', self.test_user)
self.assertEqual(self.mixin.get_setting('SETTING1'), '12345')
# no setting
self.assertEqual(self.mixin_nothing.get_setting(), '')