on master help sign in
Merge pull request #2682 from dalf/fix-checker
bb316d2Alexandre Flament
searx/search/__init__.py−2
@@ -111,8 +111,6 @@ class Search:
111 if request_params is None:
111 if request_params is None:
112 continue
112 continue
113
113
114− request_params['engine_data'] = self.search_query.engine_data.get(engineref.name, {})
115−
116 with threading.RLock():
114 with threading.RLock():
117 processor.engine.stats['sent_search_count'] += 1
115 processor.engine.stats['sent_search_count'] += 1
118
116
searx/search/checker/impl.py+4−2
@@ -174,7 +174,7 @@ class ResultContainerTests:
174 @property
174 @property
175 def result_urls(self):
175 def result_urls(self):
176 results = self.result_container.get_ordered_results()
176 results = self.result_container.get_ordered_results()
177− return [result['url'] for result in results]
177+ return [result['url'] for result in results if 'url' in result]
178
178
179 def _record_error(self, message: str, *args) -> None:
179 def _record_error(self, message: str, *args) -> None:
180 sq = _search_query_to_dict(self.search_query)
180 sq = _search_query_to_dict(self.search_query)
@@ -197,6 +197,8 @@ class ResultContainerTests:
197 self._record_error('HTML in title', repr(result.get('title', '')))
197 self._record_error('HTML in title', repr(result.get('title', '')))
198 if not _check_no_html(result.get('content', '')):
198 if not _check_no_html(result.get('content', '')):
199 self._record_error('HTML in content', repr(result.get('content', '')))
199 self._record_error('HTML in content', repr(result.get('content', '')))
200+ if result.get('url') is None:
201+ self._record_error('url is None')
200
202
201 self._add_language(result.get('title', ''))
203 self._add_language(result.get('title', ''))
202 self._add_language(result.get('content', ''))
204 self._add_language(result.get('content', ''))
@@ -310,7 +312,7 @@ class CheckerTests:
310 self.result_container_tests_list = result_container_tests_list
312 self.result_container_tests_list = result_container_tests_list
311
313
312 def unique_results(self):
314 def unique_results(self):
313− """Check the results of each ResultContain is unique"""
315+ """Check the results of each ResultContainer is unique"""
314 urls_list = [rct.result_urls for rct in self.result_container_tests_list]
316 urls_list = [rct.result_urls for rct in self.result_container_tests_list]
315 if len(urls_list[0]) > 0:
317 if len(urls_list[0]) > 0:
316 # results on the first page
318 # results on the first page
searx/search/models.py+2−4
@@ -36,7 +36,7 @@ class SearchQuery:
36 time_range: typing.Optional[str]=None,
36 time_range: typing.Optional[str]=None,
37 timeout_limit: typing.Optional[float]=None,
37 timeout_limit: typing.Optional[float]=None,
38 external_bang: typing.Optional[str]=None,
38 external_bang: typing.Optional[str]=None,
39− engine_data: typing.Optional[dict]=None):
39+ engine_data: typing.Optional[typing.Dict[str, str]]=None):
40 self.query = query
40 self.query = query
41 self.engineref_list = engineref_list
41 self.engineref_list = engineref_list
42 self.lang = lang
42 self.lang = lang
@@ -45,9 +45,7 @@ class SearchQuery:
45 self.time_range = time_range
45 self.time_range = time_range
46 self.timeout_limit = timeout_limit
46 self.timeout_limit = timeout_limit
47 self.external_bang = external_bang
47 self.external_bang = external_bang
48− self.engine_data = engine_data
48+ self.engine_data = engine_data or {}
49− if engine_data is None:
50− self.engine_data = {}
51
49
52 @property
50 @property
53 def categories(self):
51 def categories(self):
searx/search/processors/abstract.py+1
@@ -27,6 +27,7 @@ class EngineProcessor(ABC):
27 params['pageno'] = search_query.pageno
27 params['pageno'] = search_query.pageno
28 params['safesearch'] = search_query.safesearch
28 params['safesearch'] = search_query.safesearch
29 params['time_range'] = search_query.time_range
29 params['time_range'] = search_query.time_range
30+ params['engine_data'] = search_query.engine_data.get(self.engine_name, {})
30
31
31 if hasattr(self.engine, 'language') and self.engine.language:
32 if hasattr(self.engine, 'language') and self.engine.language:
32 params['language'] = self.engine.language
33 params['language'] = self.engine.language