From 2dbc0de0cd000459ebfdb3d015be8684e737e95c Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Tue, 22 Sep 2020 13:59:27 +0200 Subject: [mod] add searx/webadapter.py * move searx.search.get_search_query_from_webapp to searx.webadapter * move searx.query.SearchQuery to searx.search --- tests/unit/test_search.py | 67 ++++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 33 deletions(-) (limited to 'tests/unit/test_search.py') diff --git a/tests/unit/test_search.py b/tests/unit/test_search.py index a15d2c899..d2322b20c 100644 --- a/tests/unit/test_search.py +++ b/tests/unit/test_search.py @@ -5,6 +5,7 @@ from searx.preferences import Preferences from searx.engines import engines import searx.search +from searx.search import SearchQuery SAFESEARCH = 0 @@ -40,53 +41,53 @@ class SearchTestCase(SearxTestCase): def test_timeout_simple(self): searx.search.max_request_timeout = None - search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, None, - preferences=Preferences(['oscar'], ['general'], engines, [])) + search_query = SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + ['general'], 'en-US', SAFESEARCH, PAGENO, None, None, + preferences=Preferences(['oscar'], ['general'], engines, [])) search = searx.search.Search(search_query) search.search() self.assertEqual(search.actual_timeout, 3.0) def test_timeout_query_above_default_nomax(self): searx.search.max_request_timeout = None - search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, 5.0, - preferences=Preferences(['oscar'], ['general'], engines, [])) + search_query = SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + ['general'], 'en-US', SAFESEARCH, PAGENO, None, 5.0, + preferences=Preferences(['oscar'], ['general'], engines, [])) search = searx.search.Search(search_query) search.search() self.assertEqual(search.actual_timeout, 3.0) def test_timeout_query_below_default_nomax(self): searx.search.max_request_timeout = None - search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, 1.0, - preferences=Preferences(['oscar'], ['general'], engines, [])) + search_query = SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + ['general'], 'en-US', SAFESEARCH, PAGENO, None, 1.0, + preferences=Preferences(['oscar'], ['general'], engines, [])) search = searx.search.Search(search_query) search.search() self.assertEqual(search.actual_timeout, 1.0) def test_timeout_query_below_max(self): searx.search.max_request_timeout = 10.0 - search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, 5.0, - preferences=Preferences(['oscar'], ['general'], engines, [])) + search_query = SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + ['general'], 'en-US', SAFESEARCH, PAGENO, None, 5.0, + preferences=Preferences(['oscar'], ['general'], engines, [])) search = searx.search.Search(search_query) search.search() self.assertEqual(search.actual_timeout, 5.0) def test_timeout_query_above_max(self): searx.search.max_request_timeout = 10.0 - search_query = searx.query.SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, 15.0, - preferences=Preferences(['oscar'], ['general'], engines, [])) + search_query = SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + ['general'], 'en-US', SAFESEARCH, PAGENO, None, 15.0, + preferences=Preferences(['oscar'], ['general'], engines, [])) 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 = searx.query.SearchQuery('test', [{'category': 'general', 'name': PRIVATE_ENGINE_NAME}], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, 2.0, - preferences=Preferences(['oscar'], ['general'], engines, [])) + search_query = SearchQuery('test', [{'category': 'general', 'name': PRIVATE_ENGINE_NAME}], + ['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) @@ -94,9 +95,9 @@ class SearchTestCase(SearxTestCase): 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 = searx.query.SearchQuery('test', [{'category': 'general', 'name': PRIVATE_ENGINE_NAME}], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, 2.0, - preferences=preferences_with_tokens) + search_query = SearchQuery('test', [{'category': 'general', 'name': PRIVATE_ENGINE_NAME}], + ['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) @@ -104,28 +105,28 @@ class SearchTestCase(SearxTestCase): 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 = searx.query.SearchQuery('test', [{'category': 'general', 'name': PRIVATE_ENGINE_NAME}], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, 2.0, - preferences=preferences_with_tokens) + search_query = SearchQuery('test', [{'category': 'general', 'name': PRIVATE_ENGINE_NAME}], + ['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 = searx.query.SearchQuery('yes yes', - [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, None, - preferences=Preferences(['oscar'], ['general'], engines, [],), - external_bang="yt") + search_query = SearchQuery('yes yes', + [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + ['general'], 'en-US', SAFESEARCH, PAGENO, None, None, + preferences=Preferences(['oscar'], ['general'], engines, [],), + external_bang="yt") search = searx.search.Search(search_query) results = search.search() # For checking if the user redirected with the youtube external bang self.assertTrue(results.redirect_url is not None) - search_query = searx.query.SearchQuery('youtube never gonna give you up', - [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], - ['general'], 'en-US', SAFESEARCH, PAGENO, None, None, - preferences=Preferences(['oscar'], ['general'], engines, []),) + search_query = SearchQuery('youtube never gonna give you up', + [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + ['general'], 'en-US', SAFESEARCH, PAGENO, None, None, + preferences=Preferences(['oscar'], ['general'], engines, []),) search = searx.search.Search(search_query) results = search.search() -- cgit v1.2.3 From 2929495112e9869af24986b27066163572bc558a Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Tue, 22 Sep 2020 16:22:22 +0200 Subject: [mod] add searx.search.EngineRef was previously a Dict with two or three keys: name, category, from_bang make clear that this is a engine reference (see tests/unit/test_search.py for example) all variables using this class are renamed accordingly. --- tests/unit/test_search.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'tests/unit/test_search.py') diff --git a/tests/unit/test_search.py b/tests/unit/test_search.py index d2322b20c..9da28bc68 100644 --- a/tests/unit/test_search.py +++ b/tests/unit/test_search.py @@ -5,7 +5,7 @@ from searx.preferences import Preferences from searx.engines import engines import searx.search -from searx.search import SearchQuery +from searx.search import SearchQuery, EngineRef SAFESEARCH = 0 @@ -41,7 +41,7 @@ class SearchTestCase(SearxTestCase): def test_timeout_simple(self): searx.search.max_request_timeout = None - search_query = SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + search_query = SearchQuery('test', [EngineRef(PUBLIC_ENGINE_NAME, 'general')], ['general'], 'en-US', SAFESEARCH, PAGENO, None, None, preferences=Preferences(['oscar'], ['general'], engines, [])) search = searx.search.Search(search_query) @@ -50,7 +50,7 @@ class SearchTestCase(SearxTestCase): def test_timeout_query_above_default_nomax(self): searx.search.max_request_timeout = None - search_query = SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + search_query = SearchQuery('test', [EngineRef(PUBLIC_ENGINE_NAME, 'general')], ['general'], 'en-US', SAFESEARCH, PAGENO, None, 5.0, preferences=Preferences(['oscar'], ['general'], engines, [])) search = searx.search.Search(search_query) @@ -59,7 +59,7 @@ class SearchTestCase(SearxTestCase): def test_timeout_query_below_default_nomax(self): searx.search.max_request_timeout = None - search_query = SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + search_query = SearchQuery('test', [EngineRef(PUBLIC_ENGINE_NAME, 'general')], ['general'], 'en-US', SAFESEARCH, PAGENO, None, 1.0, preferences=Preferences(['oscar'], ['general'], engines, [])) search = searx.search.Search(search_query) @@ -68,7 +68,7 @@ class SearchTestCase(SearxTestCase): def test_timeout_query_below_max(self): searx.search.max_request_timeout = 10.0 - search_query = SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + search_query = SearchQuery('test', [EngineRef(PUBLIC_ENGINE_NAME, 'general')], ['general'], 'en-US', SAFESEARCH, PAGENO, None, 5.0, preferences=Preferences(['oscar'], ['general'], engines, [])) search = searx.search.Search(search_query) @@ -77,7 +77,7 @@ class SearchTestCase(SearxTestCase): def test_timeout_query_above_max(self): searx.search.max_request_timeout = 10.0 - search_query = SearchQuery('test', [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + search_query = SearchQuery('test', [EngineRef(PUBLIC_ENGINE_NAME, 'general')], ['general'], 'en-US', SAFESEARCH, PAGENO, None, 15.0, preferences=Preferences(['oscar'], ['general'], engines, [])) search = searx.search.Search(search_query) @@ -85,7 +85,7 @@ class SearchTestCase(SearxTestCase): self.assertEqual(search.actual_timeout, 10.0) def test_query_private_engine_without_token(self): - search_query = SearchQuery('test', [{'category': 'general', 'name': PRIVATE_ENGINE_NAME}], + 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) @@ -95,7 +95,7 @@ class SearchTestCase(SearxTestCase): 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', [{'category': 'general', 'name': PRIVATE_ENGINE_NAME}], + 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) @@ -105,7 +105,7 @@ class SearchTestCase(SearxTestCase): 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', [{'category': 'general', 'name': PRIVATE_ENGINE_NAME}], + 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) @@ -114,7 +114,7 @@ class SearchTestCase(SearxTestCase): def test_external_bang(self): search_query = SearchQuery('yes yes', - [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + [EngineRef(PUBLIC_ENGINE_NAME, 'general')], ['general'], 'en-US', SAFESEARCH, PAGENO, None, None, preferences=Preferences(['oscar'], ['general'], engines, [],), external_bang="yt") @@ -124,7 +124,7 @@ class SearchTestCase(SearxTestCase): self.assertTrue(results.redirect_url is not None) search_query = SearchQuery('youtube never gonna give you up', - [{'category': 'general', 'name': PUBLIC_ENGINE_NAME}], + [EngineRef(PUBLIC_ENGINE_NAME, 'general')], ['general'], 'en-US', SAFESEARCH, PAGENO, None, None, preferences=Preferences(['oscar'], ['general'], engines, []),) -- cgit v1.2.3 From 691d12726be1411d8c80895e927293bdcc3e9572 Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Tue, 22 Sep 2020 16:55:59 +0200 Subject: [mod] check the engine tokens in searx/webadapter.py instead of searx/search.py --- tests/unit/test_search.py | 62 ++++++----------------------------------------- 1 file changed, 7 insertions(+), 55 deletions(-) (limited to 'tests/unit/test_search.py') 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() -- cgit v1.2.3 From 485a502b886bc7fb8a806ffc576b0eec99990a5c Mon Sep 17 00:00:00 2001 From: Alexandre Flament Date: Thu, 10 Sep 2020 18:08:14 +0200 Subject: [mod] add typing and __slots__ --- tests/unit/test_search.py | 1 + 1 file changed, 1 insertion(+) (limited to 'tests/unit/test_search.py') diff --git a/tests/unit/test_search.py b/tests/unit/test_search.py index bd302c741..36135913c 100644 --- a/tests/unit/test_search.py +++ b/tests/unit/test_search.py @@ -3,6 +3,7 @@ from searx.testing import SearxTestCase from searx.search import SearchQuery, EngineRef import searx.search +import searx.engines SAFESEARCH = 0 -- cgit v1.2.3