mirror of
https://github.com/searxng/searxng.git
synced 2025-11-27 00:35:06 -05:00
[fix] engines initialization - if engine load fails, set to inactive
- if engine load fails, set the engine to inactive - dont' load a engine, when the config says its inactive Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
parent
3f30831640
commit
989b49335c
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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"'
|
||||
)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user