diff options
| author | Cqoicebordel <Cqoicebordel@users.noreply.github.com> | 2015-01-29 20:56:57 +0100 |
|---|---|---|
| committer | Cqoicebordel <Cqoicebordel@users.noreply.github.com> | 2015-01-29 20:56:57 +0100 |
| commit | efde2c21c8656ad21b24980b516ddbbf2e209523 (patch) | |
| tree | 2c06eb69c5b8c150810b4366df7598b3ebdad264 /searx/tests | |
| parent | dad0434f34f04ada2b4b0961bbb714e25c752677 (diff) | |
Bing news' unit test
I have no idea why coverage tell 97% and 2 misses in branches. If anyone has an idea...
Diffstat (limited to 'searx/tests')
| -rw-r--r-- | searx/tests/engines/test_bing_news.py | 236 | ||||
| -rw-r--r-- | searx/tests/test_engines.py | 1 |
2 files changed, 237 insertions, 0 deletions
diff --git a/searx/tests/engines/test_bing_news.py b/searx/tests/engines/test_bing_news.py new file mode 100644 index 000000000..f22b80e87 --- /dev/null +++ b/searx/tests/engines/test_bing_news.py @@ -0,0 +1,236 @@ +from collections import defaultdict +import mock +from searx.engines import bing_news +from searx.testing import SearxTestCase + + +class TestBingNewsEngine(SearxTestCase): + + def test_request(self): + query = 'test_query' + dicto = defaultdict(dict) + dicto['pageno'] = 1 + dicto['language'] = 'fr_FR' + params = bing_news.request(query, dicto) + self.assertIn('url', params) + self.assertIn(query, params['url']) + self.assertIn('bing.com', params['url']) + self.assertIn('fr', params['url']) + self.assertIn('_FP', params['cookies']) + self.assertIn('en', params['cookies']['_FP']) + + dicto['language'] = 'all' + params = bing_news.request(query, dicto) + self.assertIn('en', params['url']) + self.assertIn('_FP', params['cookies']) + self.assertIn('en', params['cookies']['_FP']) + + def test_response(self): + self.assertRaises(AttributeError, bing_news.response, None) + self.assertRaises(AttributeError, bing_news.response, []) + self.assertRaises(AttributeError, bing_news.response, '') + self.assertRaises(AttributeError, bing_news.response, '[]') + + response = mock.Mock(content='<html></html>') + self.assertEqual(bing_news.response(response), []) + + response = mock.Mock(content='<html></html>') + self.assertEqual(bing_news.response(response), []) + + html = """ + <div class="sn_r"> + <div class="newstitle"> + <a href="http://url.of.article/" target="_blank" h="ID=news,5022.1"> + Title + </a> + </div> + <div class="sn_img"> + <a href="http://url.of.article2/" target="_blank" h="ID=news,5024.1"> + <img class="rms_img" height="80" id="emb1" src="/image.src" title="Title" width="80" /> + </a> + </div> + <div class="sn_txt"> + <div class="sn_oi"> + <span class="sn_snip">Article Content</span> + <span class="sn_ST"> + <cite class="sn_src">metronews.fr</cite> + ·  + <span class="sn_tm">44 minutes ago</span> + </span> + </div> + </div> + </div> + """ + response = mock.Mock(content=html) + results = bing_news.response(response) + self.assertEqual(type(results), list) + self.assertEqual(len(results), 1) + self.assertEqual(results[0]['title'], 'Title') + self.assertEqual(results[0]['url'], 'http://url.of.article/') + self.assertEqual(results[0]['content'], 'Article Content') + + html = """ + <div class="sn_r"> + <div class="newstitle"> + <a href="http://url.of.article/" target="_blank" h="ID=news,5022.1"> + Title + </a> + </div> + <div class="sn_img"> + <a href="http://url.of.article2/" target="_blank" h="ID=news,5024.1"> + <img class="rms_img" height="80" id="emb1" src="/image.src" title="Title" width="80" /> + </a> + </div> + <div class="sn_txt"> + <div class="sn_oi"> + <span class="sn_snip">Article Content</span> + <span class="sn_ST"> + <cite class="sn_src">metronews.fr</cite> + ·  + <span class="sn_tm">44 minutes ago</span> + </span> + </div> + </div> + </div> + <div class="sn_r"> + <div class="newstitle"> + <a href="http://url.of.article/" target="_blank" h="ID=news,5022.1"> + Title + </a> + </div> + <div class="sn_img"> + <a href="http://url.of.article2/" target="_blank" h="ID=news,5024.1"> + <img class="rms_img" height="80" id="emb1" src="/image.src" title="Title" width="80" /> + </a> + </div> + <div class="sn_txt"> + <div class="sn_oi"> + <span class="sn_snip">Article Content</span> + <span class="sn_ST"> + <cite class="sn_src">metronews.fr</cite> + ·  + <span class="sn_tm">3 hours, 44 minutes ago</span> + </span> + </div> + </div> + </div> + <div class="sn_r"> + <div class="newstitle"> + <a href="http://url.of.article/" target="_blank" h="ID=news,5022.1"> + Title + </a> + </div> + <div class="sn_img"> + <a href="http://url.of.article2/" target="_blank" h="ID=news,5024.1"> + <img class="rms_img" height="80" id="emb1" src="/image.src" title="Title" width="80" /> + </a> + </div> + <div class="sn_txt"> + <div class="sn_oi"> + <span class="sn_snip">Article Content</span> + <span class="sn_ST"> + <cite class="sn_src">metronews.fr</cite> + ·  + <span class="sn_tm">44 hours ago</span> + </span> + </div> + </div> + </div> + <div class="sn_r"> + <div class="newstitle"> + <a href="http://url.of.article/" target="_blank" h="ID=news,5022.1"> + Title + </a> + </div> + <div class="sn_img"> + <a href="http://url.of.article2/" target="_blank" h="ID=news,5024.1"> + <img class="rms_img" height="80" id="emb1" src="/image.src" title="Title" width="80" /> + </a> + </div> + <div class="sn_txt"> + <div class="sn_oi"> + <span class="sn_snip">Article Content</span> + <span class="sn_ST"> + <cite class="sn_src">metronews.fr</cite> + ·  + <span class="sn_tm">2 days ago</span> + </span> + </div> + </div> + </div> + <div class="sn_r"> + <div class="newstitle"> + <a href="http://url.of.article/" target="_blank" h="ID=news,5022.1"> + Title + </a> + </div> + <div class="sn_img"> + <a href="http://url.of.article2/" target="_blank" h="ID=news,5024.1"> + <img class="rms_img" height="80" id="emb1" src="/image.src" title="Title" width="80" /> + </a> + </div> + <div class="sn_txt"> + <div class="sn_oi"> + <span class="sn_snip">Article Content</span> + <span class="sn_ST"> + <cite class="sn_src">metronews.fr</cite> + ·  + <span class="sn_tm">27/01/2015</span> + </span> + </div> + </div> + </div> + <div class="sn_r"> + <div class="newstitle"> + <a href="http://url.of.article/" target="_blank" h="ID=news,5022.1"> + Title + </a> + </div> + <div class="sn_img"> + <a href="http://url.of.article2/" target="_blank" h="ID=news,5024.1"> + <img class="rms_img" height="80" id="emb1" src="/image.src" title="Title" width="80" /> + </a> + </div> + <div class="sn_txt"> + <div class="sn_oi"> + <span class="sn_snip">Article Content</span> + <span class="sn_ST"> + <cite class="sn_src">metronews.fr</cite> + ·  + <span class="sn_tm">Il y a 3 heures</span> + </span> + </div> + </div> + </div> + """ + response = mock.Mock(content=html) + results = bing_news.response(response) + self.assertEqual(type(results), list) + self.assertEqual(len(results), 6) + + html = """ + <div class="newstitle"> + <a href="http://url.of.article/" target="_blank" h="ID=news,5022.1"> + Title + </a> + </div> + <div class="sn_img"> + <a href="http://url.of.article2/" target="_blank" h="ID=news,5024.1"> + <img class="rms_img" height="80" id="emb1" src="/image.src" title="Title" width="80" /> + </a> + </div> + <div class="sn_txt"> + <div class="sn_oi"> + <span class="sn_snip">Article Content</span> + <span class="sn_ST"> + <cite class="sn_src">metronews.fr</cite> + ·  + <span class="sn_tm">44 minutes ago</span> + </span> + </div> + </div> + """ + response = mock.Mock(content=html) + results = bing_news.response(response) + self.assertEqual(type(results), list) + self.assertEqual(len(results), 0) diff --git a/searx/tests/test_engines.py b/searx/tests/test_engines.py index fab911d13..bfdd1de4c 100644 --- a/searx/tests/test_engines.py +++ b/searx/tests/test_engines.py @@ -1,5 +1,6 @@ from searx.tests.engines.test_bing import * # noqa from searx.tests.engines.test_bing_images import * # noqa +from searx.tests.engines.test_bing_news import * # noqa from searx.tests.engines.test_dailymotion import * # noqa from searx.tests.engines.test_deezer import * # noqa from searx.tests.engines.test_deviantart import * # noqa |