on master help sign in
[fix] test: avoid HTTP requests

patch engine initialization to skip HTTP request (engine_init function in searx.engines.initialize_engines)

commit4415d25485a1ea77333357f66f48600898660871 authorAlexandre Flament <alex@al-f.net> dateThu 8 Apr 2021, 18:44 (6 years ago) parentf045c38
3 files changed+17−7
tests/unit/test_engines_init.py+1−1 tests/unit/test_query.py+10−5 tests/unit/test_webapp.py+6−1
tests/unit/test_engines_init.py+1−1
@@ -13,7 +13,7 @@ class TestEnginesInit(SearxTestCase):
1313 engine_list = [{'engine': 'dummy', 'name': 'engine1', 'shortcut': 'e1'},
1414 {'engine': 'dummy', 'name': 'engine2', 'shortcut': 'e2'}]
1515
16− engines.initialize_engines(engine_list)
16+ engines.load_engines(engine_list)
1717 self.assertEqual(len(engines.engines), 2)
1818 self.assertIn('engine1', engines.engines)
1919 self.assertIn('engine2', engines.engines)
tests/unit/test_query.py+10−5
@@ -1,7 +1,11 @@
1+from mock import patch
2+
13from searx.search import initialize
24from searx.query import RawTextQuery
35from searx.testing import SearxTestCase
46
7+import searx.engines
8+
59
610TEST_ENGINES = [
711 {
@@ -277,9 +281,10 @@ class TestBang(SearxTestCase):
277281 self.assertEqual(query.getQuery(), '!dum the query')
278282
279283 def test_bang_autocomplete_empty(self):
280− initialize()
281− query = RawTextQuery('the query !', [])
282− self.assertEqual(query.autocomplete_list, ['!images', '!wikipedia', '!osm'])
284+ with patch.object(searx.engines, 'initialize_engines', searx.engines.load_engines):
285+ initialize()
286+ query = RawTextQuery('the query !', [])
287+ self.assertEqual(query.autocomplete_list, ['!images', '!wikipedia', '!osm'])
283288
284− query = RawTextQuery('the query ?', ['osm'])
285− self.assertEqual(query.autocomplete_list, ['?images', '?wikipedia'])
289+ query = RawTextQuery('the query ?', ['osm'])
290+ self.assertEqual(query.autocomplete_list, ['?images', '?wikipedia'])
tests/unit/test_webapp.py+6−1
@@ -3,14 +3,19 @@
33import json
44from urllib.parse import ParseResult
55from mock import Mock
6−from searx import webapp
76from searx.testing import SearxTestCase
87from searx.search import Search
8+import searx.engines
99
1010
1111class ViewsTestCase(SearxTestCase):
1212
1313 def setUp(self):
14+ # skip init function (no external HTTP request)
15+ self.setattr4test(searx.engines, 'initialize_engines', searx.engines.load_engines)
16+
17+ from searx import webapp # pylint disable=import-outside-toplevel
18+
1419 webapp.app.config['TESTING'] = True # to get better error messages
1520 self.app = webapp.app.test_client()
1621