on master help sign in
Merge pull request #804 from dalf/flask_perimeter

[mod] searx uses flask framework only in webapp.py

commit3ecde5bc3a771abf39f3d072cc0424de27d4b784 authorAdam Tauber <asciimoo@gmail.com> dateFri 27 Jan 2017, 15:28 (10 years ago) parentee1d44ce67dfaa
4 files changed+21−24
searx/plugins/__init__.py+2−2 searx/search.py+5−4 searx/webapp.py+1−1 tests/unit/test_plugins.py+13−17
searx/plugins/__init__.py+2−2
@@ -63,9 +63,9 @@ class PluginStore():
6363 plugin.id = plugin.name.replace(' ', '_')
6464 self.plugins.append(plugin)
6565
66− def call(self, plugin_type, request, *args, **kwargs):
66+ def call(self, ordered_plugin_list, plugin_type, request, *args, **kwargs):
6767 ret = True
68− for plugin in request.user_plugins:
68+ for plugin in ordered_plugin_list:
6969 if hasattr(plugin, plugin_type):
7070 ret = getattr(plugin, plugin_type)(request, *args, **kwargs)
7171 if not ret:
searx/search.py+5−4
@@ -414,19 +414,20 @@ class SearchWithPlugins(Search):
414414
415415 """Similar to the Search class but call the plugins."""
416416
417− def __init__(self, search_query, request):
417+ def __init__(self, search_query, ordered_plugin_list, request):
418418 super(SearchWithPlugins, self).__init__(search_query)
419+ self.ordered_plugin_list = ordered_plugin_list
419420 self.request = request
420421
421422 def search(self):
422− if plugins.call('pre_search', self.request, self):
423+ if plugins.call(self.ordered_plugin_list, 'pre_search', self.request, self):
423424 super(SearchWithPlugins, self).search()
424425
425− plugins.call('post_search', self.request, self)
426+ plugins.call(self.ordered_plugin_list, 'post_search', self.request, self)
426427
427428 results = self.result_container.get_ordered_results()
428429
429430 for result in results:
430− plugins.call('on_result', self.request, self, result)
431+ plugins.call(self.ordered_plugin_list, 'on_result', self.request, self, result)
431432
432433 return self.result_container
searx/webapp.py+1−1
@@ -456,7 +456,7 @@ def index():
456456 try:
457457 search_query = get_search_query_from_webapp(request.preferences, request.form)
458458 # search = Search(search_query) # without plugins
459− search = SearchWithPlugins(search_query, request)
459+ search = SearchWithPlugins(search_query, request.user_plugins, request)
460460 result_container = search.search()
461461 except Exception as e:
462462 # log exception
tests/unit/test_plugins.py+13−17
@@ -28,14 +28,12 @@ class PluginStoreTest(SearxTestCase):
2828 testplugin = plugins.Plugin()
2929 store.register(testplugin)
3030 setattr(testplugin, 'asdf', Mock())
31− request = Mock(user_plugins=[])
32− store.call('asdf', request, Mock())
31+ request = Mock()
32+ store.call([], 'asdf', request, Mock())
3333
3434 self.assertFalse(testplugin.asdf.called)
3535
36− request.user_plugins.append(testplugin)
37− store.call('asdf', request, Mock())
38−
36+ store.call([testplugin], 'asdf', request, Mock())
3937 self.assertTrue(testplugin.asdf.called)
4038
4139
@@ -48,42 +46,40 @@ class SelfIPTest(SearxTestCase):
4846 self.assertTrue(len(store.plugins) == 1)
4947
5048 # IP test
51− request = Mock(user_plugins=store.plugins,
52− remote_addr='127.0.0.1')
49+ request = Mock(remote_addr='127.0.0.1')
5350 request.headers.getlist.return_value = []
5451 search = get_search_mock(query='ip', pageno=1)
55− store.call('post_search', request, search)
52+ store.call(store.plugins, 'post_search', request, search)
5653 self.assertTrue('127.0.0.1' in search.result_container.answers)
5754
5855 search = get_search_mock(query='ip', pageno=2)
59− store.call('post_search', request, search)
56+ store.call(store.plugins, 'post_search', request, search)
6057 self.assertFalse('127.0.0.1' in search.result_container.answers)
6158
6259 # User agent test
63− request = Mock(user_plugins=store.plugins,
64− user_agent='Mock')
60+ request = Mock(user_agent='Mock')
6561 request.headers.getlist.return_value = []
6662
6763 search = get_search_mock(query='user-agent', pageno=1)
68− store.call('post_search', request, search)
64+ store.call(store.plugins, 'post_search', request, search)
6965 self.assertTrue('Mock' in search.result_container.answers)
7066
7167 search = get_search_mock(query='user-agent', pageno=2)
72− store.call('post_search', request, search)
68+ store.call(store.plugins, 'post_search', request, search)
7369 self.assertFalse('Mock' in search.result_container.answers)
7470
7571 search = get_search_mock(query='user-agent', pageno=1)
76− store.call('post_search', request, search)
72+ store.call(store.plugins, 'post_search', request, search)
7773 self.assertTrue('Mock' in search.result_container.answers)
7874
7975 search = get_search_mock(query='user-agent', pageno=2)
80− store.call('post_search', request, search)
76+ store.call(store.plugins, 'post_search', request, search)
8177 self.assertFalse('Mock' in search.result_container.answers)
8278
8379 search = get_search_mock(query='What is my User-Agent?', pageno=1)
84− store.call('post_search', request, search)
80+ store.call(store.plugins, 'post_search', request, search)
8581 self.assertTrue('Mock' in search.result_container.answers)
8682
8783 search = get_search_mock(query='What is my User-Agent?', pageno=2)
88− store.call('post_search', request, search)
84+ store.call(store.plugins, 'post_search', request, search)
8985 self.assertFalse('Mock' in search.result_container.answers)