mirror of
https://github.com/searxng/searxng.git
synced 2024-11-05 12:50:11 +01:00
c3daa08537
Xpath engine and results template changed to account for the fact that archive.org doesn't cache .onions, though some onion engines migth have their own cache. Disabled by default. Can be enabled by setting the SOCKS proxies to wherever Tor is listening and setting using_tor_proxy as True. Requires Tor and updating packages. To avoid manually adding the timeout on each engine, you can set extra_proxy_timeout to account for Tor's (or whatever proxy used) extra time.
45 lines
2.0 KiB
Python
45 lines
2.0 KiB
Python
from searx.testing import SearxTestCase
|
|
from searx import settings, engines
|
|
|
|
|
|
class TestEnginesInit(SearxTestCase):
|
|
|
|
@classmethod
|
|
def tearDownClass(cls):
|
|
settings['outgoing']['using_tor_proxy'] = False
|
|
settings['outgoing']['extra_proxy_timeout'] = 0
|
|
|
|
def test_initialize_engines_default(self):
|
|
engine_list = [{'engine': 'dummy', 'name': 'engine1', 'shortcut': 'e1'},
|
|
{'engine': 'dummy', 'name': 'engine2', 'shortcut': 'e2'}]
|
|
|
|
engines.initialize_engines(engine_list)
|
|
self.assertEqual(len(engines.engines), 2)
|
|
self.assertIn('engine1', engines.engines)
|
|
self.assertIn('engine2', engines.engines)
|
|
|
|
def test_initialize_engines_exclude_onions(self):
|
|
settings['outgoing']['using_tor_proxy'] = False
|
|
engine_list = [{'engine': 'dummy', 'name': 'engine1', 'shortcut': 'e1', 'categories': 'general'},
|
|
{'engine': 'dummy', 'name': 'engine2', 'shortcut': 'e2', 'categories': 'onions'}]
|
|
|
|
engines.initialize_engines(engine_list)
|
|
self.assertEqual(len(engines.engines), 1)
|
|
self.assertIn('engine1', engines.engines)
|
|
self.assertNotIn('onions', engines.categories)
|
|
|
|
def test_initialize_engines_include_onions(self):
|
|
settings['outgoing']['using_tor_proxy'] = True
|
|
settings['outgoing']['extra_proxy_timeout'] = 100.0
|
|
engine_list = [{'engine': 'dummy', 'name': 'engine1', 'shortcut': 'e1', 'categories': 'general',
|
|
'timeout': 20.0, 'onion_url': 'http://engine1.onion'},
|
|
{'engine': 'dummy', 'name': 'engine2', 'shortcut': 'e2', 'categories': 'onions'}]
|
|
|
|
engines.initialize_engines(engine_list)
|
|
self.assertEqual(len(engines.engines), 2)
|
|
self.assertIn('engine1', engines.engines)
|
|
self.assertIn('engine2', engines.engines)
|
|
self.assertIn('onions', engines.categories)
|
|
self.assertIn('http://engine1.onion', engines.engines['engine1'].search_url)
|
|
self.assertEqual(engines.engines['engine1'].timeout, 120.0)
|