diff options
| author | Adam Tauber <asciimoo@gmail.com> | 2015-10-03 17:26:07 +0200 |
|---|---|---|
| committer | Adam Tauber <asciimoo@gmail.com> | 2015-10-03 17:26:07 +0200 |
| commit | b6c3cb0bdd020a459d0ef5c21d1303ed0148cc0c (patch) | |
| tree | 4b0c0ae035b7ff467c8ef7d729aa589de38e9f62 /searx/tests | |
| parent | 0ad272c5cb81a9c69008aa86a1f29cd642ddf4ff (diff) | |
[enh][mod] result handling refactor
Several changes has been made:
- Parallel result merge
- Scoring algorithm slightly changed (see result_score())
- Proper Thread locking on global data manipulation
Diffstat (limited to 'searx/tests')
| -rw-r--r-- | searx/tests/test_results.py | 41 | ||||
| -rw-r--r-- | searx/tests/test_search.py | 23 | ||||
| -rw-r--r-- | searx/tests/test_webapp.py | 8 |
3 files changed, 52 insertions, 20 deletions
diff --git a/searx/tests/test_results.py b/searx/tests/test_results.py new file mode 100644 index 000000000..274b5b37a --- /dev/null +++ b/searx/tests/test_results.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- + +from searx.results import ResultContainer +from searx.testing import SearxTestCase + + +def fake_result(url='https://aa.bb/cc?dd=ee#ff', + title='aaa', + content='bbb', + engine='wikipedia', **kwargs): + result = {'url': url, + 'title': title, + 'content': content, + 'engine': engine} + result.update(kwargs) + return result + + +# TODO +class ResultContainerTestCase(SearxTestCase): + + def test_empty(self): + c = ResultContainer() + self.assertEqual(c.get_ordered_results(), []) + + def test_one_result(self): + c = ResultContainer() + c.extend('wikipedia', [fake_result()]) + self.assertEqual(c.results_length(), 1) + + def test_one_suggestion(self): + c = ResultContainer() + c.extend('wikipedia', [fake_result(suggestion=True)]) + self.assertEqual(len(c.suggestions), 1) + self.assertEqual(c.results_length(), 0) + + def test_result_merge(self): + c = ResultContainer() + c.extend('wikipedia', [fake_result()]) + c.extend('wikidata', [fake_result(), fake_result(url='https://example.com/')]) + self.assertEqual(c.results_length(), 2) diff --git a/searx/tests/test_search.py b/searx/tests/test_search.py index 89d0b620d..af5fffd8b 100644 --- a/searx/tests/test_search.py +++ b/searx/tests/test_search.py @@ -1,25 +1,10 @@ # -*- coding: utf-8 -*- -from searx.search import score_results from searx.testing import SearxTestCase -def fake_result(url='https://aa.bb/cc?dd=ee#ff', - title='aaa', - content='bbb', - engine='wikipedia'): - return {'url': url, - 'title': title, - 'content': content, - 'engine': engine} +# TODO +class SearchTestCase(SearxTestCase): - -class ScoreResultsTestCase(SearxTestCase): - - def test_empty(self): - self.assertEqual(score_results(dict()), []) - - def test_urlparse(self): - results = score_results(dict(a=[fake_result(url='https://aa.bb/cc?dd=ee#ff')])) - parsed_url = results[0]['parsed_url'] - self.assertEqual(parsed_url.query, 'dd=ee') + def test_(self): + pass diff --git a/searx/tests/test_webapp.py b/searx/tests/test_webapp.py index 471ec2f2d..1d9cc649c 100644 --- a/searx/tests/test_webapp.py +++ b/searx/tests/test_webapp.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- import json +from mock import Mock from urlparse import ParseResult from searx import webapp from searx.testing import SearxTestCase @@ -33,7 +34,12 @@ class ViewsTestCase(SearxTestCase): ] def search_mock(search_self, *args): - search_self.results = self.test_results + search_self.result_container = Mock(get_ordered_results=lambda: self.test_results, + answers=set(), + suggestions=set(), + infoboxes=[], + results=self.test_results, + results_length=lambda: len(self.test_results)) webapp.Search.search = search_mock |