Browse Source

[fix] test: avoid HTTP requests

patch engine initialization to skip HTTP request
(engine_init function in searx.engines.initialize_engines)
Alexandre Flament 4 years ago
parent
commit
111180705b
3 changed files with 17 additions and 7 deletions
  1. 1 1
      tests/unit/test_engines_init.py
  2. 10 5
      tests/unit/test_query.py
  3. 6 1
      tests/unit/test_webapp.py

+ 1 - 1
tests/unit/test_engines_init.py

@@ -13,7 +13,7 @@ class TestEnginesInit(SearxTestCase):
         engine_list = [{'engine': 'dummy', 'name': 'engine1', 'shortcut': 'e1'},
         engine_list = [{'engine': 'dummy', 'name': 'engine1', 'shortcut': 'e1'},
                        {'engine': 'dummy', 'name': 'engine2', 'shortcut': 'e2'}]
                        {'engine': 'dummy', 'name': 'engine2', 'shortcut': 'e2'}]
 
 
-        engines.initialize_engines(engine_list)
+        engines.load_engines(engine_list)
         self.assertEqual(len(engines.engines), 2)
         self.assertEqual(len(engines.engines), 2)
         self.assertIn('engine1', engines.engines)
         self.assertIn('engine1', engines.engines)
         self.assertIn('engine2', engines.engines)
         self.assertIn('engine2', engines.engines)

+ 10 - 5
tests/unit/test_query.py

@@ -1,7 +1,11 @@
+from mock import patch
+
 from searx.search import initialize
 from searx.search import initialize
 from searx.query import RawTextQuery
 from searx.query import RawTextQuery
 from searx.testing import SearxTestCase
 from searx.testing import SearxTestCase
 
 
+import searx.engines
+
 
 
 TEST_ENGINES = [
 TEST_ENGINES = [
     {
     {
@@ -277,9 +281,10 @@ class TestBang(SearxTestCase):
         self.assertEqual(query.getQuery(), '!dum the query')
         self.assertEqual(query.getQuery(), '!dum the query')
 
 
     def test_bang_autocomplete_empty(self):
     def test_bang_autocomplete_empty(self):
-        initialize()
-        query = RawTextQuery('the query !', [])
-        self.assertEqual(query.autocomplete_list, ['!images', '!wikipedia', '!osm'])
+        with patch.object(searx.engines, 'initialize_engines', searx.engines.load_engines):
+            initialize()
+            query = RawTextQuery('the query !', [])
+            self.assertEqual(query.autocomplete_list, ['!images', '!wikipedia', '!osm'])
 
 
-        query = RawTextQuery('the query ?', ['osm'])
-        self.assertEqual(query.autocomplete_list, ['?images', '?wikipedia'])
+            query = RawTextQuery('the query ?', ['osm'])
+            self.assertEqual(query.autocomplete_list, ['?images', '?wikipedia'])

+ 6 - 1
tests/unit/test_webapp.py

@@ -3,14 +3,19 @@
 import json
 import json
 from urllib.parse import ParseResult
 from urllib.parse import ParseResult
 from mock import Mock
 from mock import Mock
-from searx import webapp
 from searx.testing import SearxTestCase
 from searx.testing import SearxTestCase
 from searx.search import Search
 from searx.search import Search
+import searx.engines
 
 
 
 
 class ViewsTestCase(SearxTestCase):
 class ViewsTestCase(SearxTestCase):
 
 
     def setUp(self):
     def setUp(self):
+        # skip init function (no external HTTP request)
+        self.setattr4test(searx.engines, 'initialize_engines', searx.engines.load_engines)
+
+        from searx import webapp  # pylint disable=import-outside-toplevel
+
         webapp.app.config['TESTING'] = True  # to get better error messages
         webapp.app.config['TESTING'] = True  # to get better error messages
         self.app = webapp.app.test_client()
         self.app = webapp.app.test_client()