on master help sign in
Merge pull request #2682 from dalf/fix-checker

[fix] checker: various bug fixes

commitbb316d26984354be02dd0cbec85c5c9658ae5b9a authorAlexandre Flament <alex@al-f.net> dateSat 27 Mar 2021, 17:44 (6 years ago) parent725a6960b45afd
4 files changed+7−8
searx/search/__init__.py−2 searx/search/checker/impl.py+4−2 searx/search/models.py+2−4 searx/search/processors/abstract.py+1
searx/search/__init__.py−2
@@ -111,8 +111,6 @@ class Search:
111111 if request_params is None:
112112 continue
113113
114− request_params['engine_data'] = self.search_query.engine_data.get(engineref.name, {})
115−
116114 with threading.RLock():
117115 processor.engine.stats['sent_search_count'] += 1
118116
searx/search/checker/impl.py+4−2
@@ -174,7 +174,7 @@ class ResultContainerTests:
174174 @property
175175 def result_urls(self):
176176 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]
178178
179179 def _record_error(self, message: str, *args) -> None:
180180 sq = _search_query_to_dict(self.search_query)
@@ -197,6 +197,8 @@ class ResultContainerTests:
197197 self._record_error('HTML in title', repr(result.get('title', '')))
198198 if not _check_no_html(result.get('content', '')):
199199 self._record_error('HTML in content', repr(result.get('content', '')))
200+ if result.get('url') is None:
201+ self._record_error('url is None')
200202
201203 self._add_language(result.get('title', ''))
202204 self._add_language(result.get('content', ''))
@@ -310,7 +312,7 @@ class CheckerTests:
310312 self.result_container_tests_list = result_container_tests_list
311313
312314 def unique_results(self):
313− """Check the results of each ResultContain is unique"""
315+ """Check the results of each ResultContainer is unique"""
314316 urls_list = [rct.result_urls for rct in self.result_container_tests_list]
315317 if len(urls_list[0]) > 0:
316318 # results on the first page
searx/search/models.py+2−4
@@ -36,7 +36,7 @@ class SearchQuery:
3636 time_range: typing.Optional[str]=None,
3737 timeout_limit: typing.Optional[float]=None,
3838 external_bang: typing.Optional[str]=None,
39− engine_data: typing.Optional[dict]=None):
39+ engine_data: typing.Optional[typing.Dict[str, str]]=None):
4040 self.query = query
4141 self.engineref_list = engineref_list
4242 self.lang = lang
@@ -45,9 +45,7 @@ class SearchQuery:
4545 self.time_range = time_range
4646 self.timeout_limit = timeout_limit
4747 self.external_bang = external_bang
48− self.engine_data = engine_data
49− if engine_data is None:
50− self.engine_data = {}
48+ self.engine_data = engine_data or {}
5149
5250 @property
5351 def categories(self):
searx/search/processors/abstract.py+1
@@ -27,6 +27,7 @@ class EngineProcessor(ABC):
2727 params['pageno'] = search_query.pageno
2828 params['safesearch'] = search_query.safesearch
2929 params['time_range'] = search_query.time_range
30+ params['engine_data'] = search_query.engine_data.get(self.engine_name, {})
3031
3132 if hasattr(self.engine, 'language') and self.engine.language:
3233 params['language'] = self.engine.language