summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--searx/engines/__init__.py7
-rw-r--r--searx/search/processors/__init__.py1
-rw-r--r--tests/unit/test_engines_init.py4
3 files changed, 9 insertions, 3 deletions
diff --git a/searx/engines/__init__.py b/searx/engines/__init__.py
index 30ef7fd75..8b2bcad48 100644
--- a/searx/engines/__init__.py
+++ b/searx/engines/__init__.py
@@ -270,7 +270,14 @@ def load_engines(engine_list: list[dict[str, t.Any]]):
categories.clear()
categories['general'] = []
for engine_data in engine_list:
+ if engine_data.get("inactive") is True:
+ continue
engine = load_engine(engine_data)
if engine:
register_engine(engine)
+ else:
+ # if an engine can't be loaded (if for example the engine is missing
+ # tor or some other requirements) its set to inactive!
+ logger.error("loading engine %s failed: set engine to inactive!", engine_data.get("name", "???"))
+ engine_data["inactive"] = True
return engines
diff --git a/searx/search/processors/__init__.py b/searx/search/processors/__init__.py
index 1c248c64e..1c9e0be3c 100644
--- a/searx/search/processors/__init__.py
+++ b/searx/search/processors/__init__.py
@@ -51,7 +51,6 @@ class ProcessorMap(dict[str, EngineProcessor]):
eng_name: str = eng_settings["name"]
if eng_settings.get("inactive", False) is True:
- logger.info("Engine of name '%s' is inactive.", eng_name)
continue
eng_obj = engines.engines.get(eng_name)
diff --git a/tests/unit/test_engines_init.py b/tests/unit/test_engines_init.py
index b91b67162..bcd6ad084 100644
--- a/tests/unit/test_engines_init.py
+++ b/tests/unit/test_engines_init.py
@@ -61,7 +61,7 @@ class TestEnginesInit(SearxTestCase):
with self.assertLogs('searx.engines', level='ERROR') as cm: # pylint: disable=invalid-name
engines.load_engines(engine_list)
self.assertEqual(len(engines.engines), 0)
- self.assertEqual(cm.output, ['ERROR:searx.engines:An engine does not have a "name" field'])
+ self.assertEqual(cm.output[0], 'ERROR:searx.engines:An engine does not have a "name" field')
def test_missing_engine_field(self):
settings['outgoing']['using_tor_proxy'] = False
@@ -72,5 +72,5 @@ class TestEnginesInit(SearxTestCase):
engines.load_engines(engine_list)
self.assertEqual(len(engines.engines), 0)
self.assertEqual(
- cm.output, ['ERROR:searx.engines:The "engine" field is missing for the engine named "engine2"']
+ cm.output[0], 'ERROR:searx.engines:The "engine" field is missing for the engine named "engine2"'
)