Browse Source

Revert "[enh] test: load each engine to check for syntax errors"

This reverts commit 4fb3ed2c6335b68f6b28ebc68d5d22f2fd621648.
Alexandre Flament 4 years ago
parent
commit
b329058c1a
3 changed files with 12 additions and 23 deletions
  1. 7 6
      searx/engines/__init__.py
  2. 5 4
      searx/webapp.py
  3. 0 13
      tests/unit/test_engines.py

+ 7 - 6
searx/engines/__init__.py

@@ -72,8 +72,11 @@ def load_engine(engine_data):
 
     engine_module = engine_data['engine']
 
-    # can raise an exception
-    engine = load_module(engine_module + '.py', engine_dir)
+    try:
+        engine = load_module(engine_module + '.py', engine_dir)
+    except:
+        logger.exception('Cannot load engine "{}"'.format(engine_module))
+        return None
 
     for param_name in engine_data:
         if param_name == 'engine':
@@ -251,11 +254,9 @@ def load_engines(engine_list):
     global engines
     engines.clear()
     for engine_data in engine_list:
-        try:
-            engine = load_engine(engine_data)
+        engine = load_engine(engine_data)
+        if engine is not None:
             engines[engine.name] = engine
-        except:
-            logger.exception('Cannot load engine "{}"'.format(engine_data['engine']))
     return engines
 
 

+ 5 - 4
searx/webapp.py

@@ -136,6 +136,11 @@ app.jinja_env.lstrip_blocks = True
 app.jinja_env.add_extension('jinja2.ext.loopcontrols')
 app.secret_key = settings['server']['secret_key']
 
+if not searx_debug \
+   or os.environ.get("WERKZEUG_RUN_MAIN") == "true" \
+   or os.environ.get('UWSGI_ORIGINAL_PROC_NAME') is not None:
+    initialize_engines(settings['engines'])
+
 babel = Babel(app)
 
 rtl_locales = ['ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'fa_IR', 'glk', 'he',
@@ -1046,10 +1051,6 @@ def page_not_found(e):
 
 
 def run():
-    if not searx_debug \
-       or os.environ.get("WERKZEUG_RUN_MAIN") == "true" \
-       or os.environ.get('UWSGI_ORIGINAL_PROC_NAME') is not None:
-        initialize_engines(settings['engines'])
     logger.debug('starting webserver on %s:%s', settings['server']['bind_address'], settings['server']['port'])
     app.run(
         debug=searx_debug,

+ 0 - 13
tests/unit/test_engines.py

@@ -1,13 +0,0 @@
-# -*- coding: utf-8 -*-
-
-import unittest2 as unittest
-from unittest2.util import strclass
-from searx.engines import load_engine
-from searx import settings
-
-
-class TestEngine(unittest.TestCase):
-
-    def test_engines(self):
-        for engine_data in settings['engines']:
-            load_engine(engine_data)