From c67f2aa2d743e29f4ee127c51da437242f68df17 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 10 Oct 2021 00:21:02 +0200 Subject: [PATCH] set_setting fnc + fixed settings test --- InvenTree/plugin/integration.py | 13 ++++++++++++- InvenTree/plugin/test_integration.py | 7 ++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/InvenTree/plugin/integration.py b/InvenTree/plugin/integration.py index c47a6ba060..d3e521c21b 100644 --- a/InvenTree/plugin/integration.py +++ b/InvenTree/plugin/integration.py @@ -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: diff --git a/InvenTree/plugin/test_integration.py b/InvenTree/plugin/test_integration.py index 7b5a774568..247992f3b7 100644 --- a/InvenTree/plugin/test_integration.py +++ b/InvenTree/plugin/test_integration.py @@ -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(), '')