summaryrefslogtreecommitdiff
path: root/tests/unit/test_preferences.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/test_preferences.py')
-rw-r--r--tests/unit/test_preferences.py47
1 files changed, 27 insertions, 20 deletions
diff --git a/tests/unit/test_preferences.py b/tests/unit/test_preferences.py
index 92abe81ee..d7009cbfd 100644
--- a/tests/unit/test_preferences.py
+++ b/tests/unit/test_preferences.py
@@ -1,9 +1,9 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
-# pylint: disable=missing-module-docstring, invalid-name
+# pylint: disable=missing-module-docstring,disable=missing-class-docstring,invalid-name
import flask
from mock import Mock
-from tests import SearxTestCase
+
from searx import favicons
from searx.locales import locales_initialize
from searx.preferences import (
@@ -15,20 +15,19 @@ from searx.preferences import (
PluginsSetting,
ValidationException,
)
-from searx.plugins import Plugin
+import searx.plugins
from searx.preferences import Preferences
+from tests import SearxTestCase
+from .test_plugins import PluginMock
+
+
locales_initialize()
favicons.init()
-class PluginStub(Plugin): # pylint: disable=missing-class-docstring, too-few-public-methods
- def __init__(self, plugin_id, default_on):
- self.id = plugin_id
- self.default_on = default_on
+class TestSettings(SearxTestCase):
-
-class TestSettings(SearxTestCase): # pylint: disable=missing-class-docstring
# map settings
def test_map_setting_invalid_default_value(self):
@@ -93,6 +92,7 @@ class TestSettings(SearxTestCase): # pylint: disable=missing-class-docstring
self.assertEqual(setting.get_value(), ['2'])
# search language settings
+
def test_lang_setting_valid_choice(self):
setting = SearchLanguageSetting('all', choices=['all', 'de', 'en'])
setting.parse('de')
@@ -114,23 +114,30 @@ class TestSettings(SearxTestCase): # pylint: disable=missing-class-docstring
self.assertEqual(setting.get_value(), 'es-ES')
# plugins settings
+
def test_plugins_setting_all_default_enabled(self):
- plugin1 = PluginStub('plugin1', True)
- plugin2 = PluginStub('plugin2', True)
- setting = PluginsSetting(['3'], plugins=[plugin1, plugin2])
- self.assertEqual(set(setting.get_enabled()), set(['plugin1', 'plugin2']))
+ storage = searx.plugins.PluginStorage()
+ storage.register(PluginMock("plg001", "first plugin", True))
+ storage.register(PluginMock("plg002", "second plugin", True))
+ plgs_settings = PluginsSetting(False, storage)
+ self.assertEqual(set(plgs_settings.get_enabled()), {"plg001", "plg002"})
def test_plugins_setting_few_default_enabled(self):
- plugin1 = PluginStub('plugin1', True)
- plugin2 = PluginStub('plugin2', False)
- plugin3 = PluginStub('plugin3', True)
- setting = PluginsSetting('name', plugins=[plugin1, plugin2, plugin3])
- self.assertEqual(set(setting.get_enabled()), set(['plugin1', 'plugin3']))
+ storage = searx.plugins.PluginStorage()
+ storage.register(PluginMock("plg001", "first plugin", True))
+ storage.register(PluginMock("plg002", "second plugin", False))
+ storage.register(PluginMock("plg003", "third plugin", True))
+ plgs_settings = PluginsSetting(False, storage)
+ self.assertEqual(set(plgs_settings.get_enabled()), set(['plg001', 'plg003']))
-class TestPreferences(SearxTestCase): # pylint: disable=missing-class-docstring
+class TestPreferences(SearxTestCase):
+
def setUp(self):
- self.preferences = Preferences(['simple'], ['general'], {}, [])
+ super().setUp()
+
+ storage = searx.plugins.PluginStorage()
+ self.preferences = Preferences(['simple'], ['general'], {}, storage)
def test_encode(self):
url_params = (