diff options
author | Alexandre Flament <alex@al-f.net> | 2020-09-22 16:55:59 +0200 |
---|---|---|
committer | Alexandre Flament <alex@al-f.net> | 2020-09-22 18:59:51 +0200 |
commit | 691d12726be1411d8c80895e927293bdcc3e9572 (patch) | |
tree | 37007ff7216726d9d5476db285d9c2d8a01d047d /tests | |
parent | eecfff268913045f957c0fceb2a1caf56f236a1f (diff) | |
download | searxng-691d12726be1411d8c80895e927293bdcc3e9572.tar.gz searxng-691d12726be1411d8c80895e927293bdcc3e9572.zip |
[mod] check the engine tokens in searx/webadapter.py instead of searx/search.py
Diffstat (limited to 'tests')
-rw-r--r-- | tests/unit/test_search.py | 62 | ||||
-rw-r--r-- | tests/unit/test_webadapter.py | 54 |
2 files changed, 61 insertions, 55 deletions
diff --git a/tests/unit/test_search.py b/tests/unit/test_search.py index 9da28bc68..bd302c741 100644 --- a/tests/unit/test_search.py +++ b/tests/unit/test_search.py @@ -1,17 +1,13 @@ # -*- coding: utf-8 -*- from searx.testing import SearxTestCase -from searx.preferences import Preferences -from searx.engines import engines - -import searx.search from searx.search import SearchQuery, EngineRef +import searx.search SAFESEARCH = 0 PAGENO = 1 PUBLIC_ENGINE_NAME = 'general dummy' -PRIVATE_ENGINE_NAME = 'general private offline' TEST_ENGINES = [ { 'name': PUBLIC_ENGINE_NAME, @@ -21,15 +17,6 @@ TEST_ENGINES = [ 'timeout': 3.0, 'tokens': [], }, - { - 'name': PRIVATE_ENGINE_NAME, - 'engine': 'dummy-offline', - 'categories': 'general', - 'shortcut': 'do', - 'timeout': 3.0, - 'offline': True, - 'tokens': ['my-token'], - }, ] @@ -42,8 +29,7 @@ class SearchTestCase(SearxTestCase): def test_timeout_simple(self): searx.search.max_request_timeout = None search_query = SearchQuery('test', [EngineRef(PUBLIC_ENGINE_NAME, 'general')], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, None, - preferences=Preferences(['oscar'], ['general'], engines, [])) + ['general'], 'en-US', SAFESEARCH, PAGENO, None, None) search = searx.search.Search(search_query) search.search() self.assertEqual(search.actual_timeout, 3.0) @@ -51,8 +37,7 @@ class SearchTestCase(SearxTestCase): def test_timeout_query_above_default_nomax(self): searx.search.max_request_timeout = None search_query = SearchQuery('test', [EngineRef(PUBLIC_ENGINE_NAME, 'general')], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, 5.0, - preferences=Preferences(['oscar'], ['general'], engines, [])) + ['general'], 'en-US', SAFESEARCH, PAGENO, None, 5.0) search = searx.search.Search(search_query) search.search() self.assertEqual(search.actual_timeout, 3.0) @@ -60,8 +45,7 @@ class SearchTestCase(SearxTestCase): def test_timeout_query_below_default_nomax(self): searx.search.max_request_timeout = None search_query = SearchQuery('test', [EngineRef(PUBLIC_ENGINE_NAME, 'general')], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, 1.0, - preferences=Preferences(['oscar'], ['general'], engines, [])) + ['general'], 'en-US', SAFESEARCH, PAGENO, None, 1.0) search = searx.search.Search(search_query) search.search() self.assertEqual(search.actual_timeout, 1.0) @@ -69,8 +53,7 @@ class SearchTestCase(SearxTestCase): def test_timeout_query_below_max(self): searx.search.max_request_timeout = 10.0 search_query = SearchQuery('test', [EngineRef(PUBLIC_ENGINE_NAME, 'general')], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, 5.0, - preferences=Preferences(['oscar'], ['general'], engines, [])) + ['general'], 'en-US', SAFESEARCH, PAGENO, None, 5.0) search = searx.search.Search(search_query) search.search() self.assertEqual(search.actual_timeout, 5.0) @@ -78,45 +61,15 @@ class SearchTestCase(SearxTestCase): def test_timeout_query_above_max(self): searx.search.max_request_timeout = 10.0 search_query = SearchQuery('test', [EngineRef(PUBLIC_ENGINE_NAME, 'general')], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, 15.0, - preferences=Preferences(['oscar'], ['general'], engines, [])) + ['general'], 'en-US', SAFESEARCH, PAGENO, None, 15.0) search = searx.search.Search(search_query) search.search() self.assertEqual(search.actual_timeout, 10.0) - def test_query_private_engine_without_token(self): - search_query = SearchQuery('test', [EngineRef(PRIVATE_ENGINE_NAME, 'general')], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, 2.0, - preferences=Preferences(['oscar'], ['general'], engines, [])) - search = searx.search.Search(search_query) - results = search.search() - self.assertEqual(results.results_length(), 0) - - def test_query_private_engine_with_incorrect_token(self): - preferences_with_tokens = Preferences(['oscar'], ['general'], engines, []) - preferences_with_tokens.parse_dict({'tokens': 'bad-token'}) - search_query = SearchQuery('test', [EngineRef(PRIVATE_ENGINE_NAME, 'general')], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, 2.0, - preferences=preferences_with_tokens) - search = searx.search.Search(search_query) - results = search.search() - self.assertEqual(results.results_length(), 0) - - def test_query_private_engine_with_correct_token(self): - preferences_with_tokens = Preferences(['oscar'], ['general'], engines, []) - preferences_with_tokens.parse_dict({'tokens': 'my-token'}) - search_query = SearchQuery('test', [EngineRef(PRIVATE_ENGINE_NAME, 'general')], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, 2.0, - preferences=preferences_with_tokens) - search = searx.search.Search(search_query) - results = search.search() - self.assertEqual(results.results_length(), 1) - def test_external_bang(self): search_query = SearchQuery('yes yes', [EngineRef(PUBLIC_ENGINE_NAME, 'general')], ['general'], 'en-US', SAFESEARCH, PAGENO, None, None, - preferences=Preferences(['oscar'], ['general'], engines, [],), external_bang="yt") search = searx.search.Search(search_query) results = search.search() @@ -125,8 +78,7 @@ class SearchTestCase(SearxTestCase): search_query = SearchQuery('youtube never gonna give you up', [EngineRef(PUBLIC_ENGINE_NAME, 'general')], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, None, - preferences=Preferences(['oscar'], ['general'], engines, []),) + ['general'], 'en-US', SAFESEARCH, PAGENO, None, None) search = searx.search.Search(search_query) results = search.search() diff --git a/tests/unit/test_webadapter.py b/tests/unit/test_webadapter.py new file mode 100644 index 000000000..7806353d3 --- /dev/null +++ b/tests/unit/test_webadapter.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- + +from searx.testing import SearxTestCase +from searx.preferences import Preferences +from searx.engines import engines + +import searx.search +from searx.search import EngineRef, SearchQuery +from searx.webadapter import validate_engineref_list + + +PRIVATE_ENGINE_NAME = 'general private offline' +TEST_ENGINES = [ + { + 'name': PRIVATE_ENGINE_NAME, + 'engine': 'dummy-offline', + 'categories': 'general', + 'shortcut': 'do', + 'timeout': 3.0, + 'offline': True, + 'tokens': ['my-token'], + }, +] +SEARCHQUERY = [EngineRef(PRIVATE_ENGINE_NAME, 'general')] + + +class ValidateQueryCase(SearxTestCase): + + @classmethod + def setUpClass(cls): + searx.engines.initialize_engines(TEST_ENGINES) + + def test_query_private_engine_without_token(self): + preferences = Preferences(['oscar'], ['general'], engines, []) + valid, unknown, invalid_token = validate_engineref_list(SEARCHQUERY, preferences) + self.assertEqual(len(valid), 0) + self.assertEqual(len(unknown), 0) + self.assertEqual(len(invalid_token), 1) + + def test_query_private_engine_with_incorrect_token(self): + preferences_with_tokens = Preferences(['oscar'], ['general'], engines, []) + preferences_with_tokens.parse_dict({'tokens': 'bad-token'}) + valid, unknown, invalid_token = validate_engineref_list(SEARCHQUERY, preferences_with_tokens) + self.assertEqual(len(valid), 0) + self.assertEqual(len(unknown), 0) + self.assertEqual(len(invalid_token), 1) + + def test_query_private_engine_with_correct_token(self): + preferences_with_tokens = Preferences(['oscar'], ['general'], engines, []) + preferences_with_tokens.parse_dict({'tokens': 'my-token'}) + valid, unknown, invalid_token = validate_engineref_list(SEARCHQUERY, preferences_with_tokens) + self.assertEqual(len(valid), 1) + self.assertEqual(len(unknown), 0) + self.assertEqual(len(invalid_token), 0) |