From 62cc2a5658c9f2cfe75c0af0e5db125d2c6f8e38 Mon Sep 17 00:00:00 2001 From: Dalf Date: Thu, 4 Jun 2015 18:30:08 +0200 Subject: [fix] bing_news based on RSS output format --- searx/tests/engines/test_bing_news.py | 274 +++++++++++----------------------- 1 file changed, 88 insertions(+), 186 deletions(-) (limited to 'searx/tests') diff --git a/searx/tests/engines/test_bing_news.py b/searx/tests/engines/test_bing_news.py index 4ef0c3af7..a64d59b7b 100644 --- a/searx/tests/engines/test_bing_news.py +++ b/searx/tests/engines/test_bing_news.py @@ -2,6 +2,7 @@ from collections import defaultdict import mock from searx.engines import bing_news from searx.testing import SearxTestCase +import lxml class TestBingNewsEngine(SearxTestCase): @@ -16,14 +17,10 @@ class TestBingNewsEngine(SearxTestCase): 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) @@ -37,200 +34,105 @@ class TestBingNewsEngine(SearxTestCase): response = mock.Mock(content='') self.assertEqual(bing_news.response(response), []) - html = """ -
- -
- - - -
-
-
- Article Content -
- metronews.fr -  · - 44 minutes ago -
-
-
-
- """ + html = """ + + + python - Bing News + https://www.bing.com:443/news/search?q=python&setmkt=en-US&first=1&format=RSS + Search results + + http://10.53.64.9/rsslogo.gif + test + https://www.bing.com:443/news/search?q=test&setmkt=en-US&first=1&format=RSS + + Copyright + + Title + https://www.bing.com/news/apiclick.aspx?ref=FexRss&aid=&tid=c237eccc50bd4758b106a5e3c94fce09&url=http%3a%2f%2furl.of.article%2f&c=xxxxxxxxx&mkt=en-us + Article Content + Tue, 02 Jun 2015 13:37:00 GMT + Infoworld + http://a1.bing4.com/th?id=ON.13371337133713371337133713371337&pid=News + w={0}&h={1}&c=7 + + 620 + 413 + + + Another Title + https://www.bing.com/news/apiclick.aspx?ref=FexRss&aid=&tid=c237eccc50bd4758b106a5e3c94fce09&url=http%3a%2f%2fanother.url.of.article%2f&c=xxxxxxxxx&mkt=en-us + Another Article Content + Tue, 02 Jun 2015 13:37:00 GMT + + +""" # noqa response = mock.Mock(content=html) results = bing_news.response(response) self.assertEqual(type(results), list) - self.assertEqual(len(results), 1) + self.assertEqual(len(results), 2) self.assertEqual(results[0]['title'], 'Title') self.assertEqual(results[0]['url'], 'http://url.of.article/') self.assertEqual(results[0]['content'], 'Article Content') + self.assertEqual(results[0]['thumbnail'], 'https://www.bing.com/th?id=ON.13371337133713371337133713371337') + self.assertEqual(results[1]['title'], 'Another Title') + self.assertEqual(results[1]['url'], 'http://another.url.of.article/') + self.assertEqual(results[1]['content'], 'Another Article Content') + self.assertNotIn('thumbnail', results[1]) - html = """ -
- -
- - - -
-
-
- Article Content -
- metronews.fr -  · - 44 minutes ago -
-
-
-
-
- -
- - - -
-
-
- Article Content -
- metronews.fr -  · - 3 hours, 44 minutes ago -
-
-
-
-
- -
- - - -
-
-
- Article Content -
- metronews.fr -  · - 44 hours ago -
-
-
-
-
- -
- - - -
-
-
- Article Content -
- metronews.fr -  · - 2 days ago -
-
-
-
-
- -
- - - -
-
-
- Article Content -
- metronews.fr -  · - 27/01/2015 -
-
-
-
-
- -
- - - -
-
-
- Article Content -
- metronews.fr -  · - Il y a 3 heures -
-
-
-
- """ + html = """ + + + python - Bing News + https://www.bing.com:443/news/search?q=python&setmkt=en-US&first=1&format=RSS + Search results + + http://10.53.64.9/rsslogo.gif + test + https://www.bing.com:443/news/search?q=test&setmkt=en-US&first=1&format=RSS + + Copyright + + Title + http://another.url.of.article/ + Article Content + garbage + Infoworld + http://another.bing.com/image + w={0}&h={1}&c=7 + + 620 + 413 + + +""" # noqa response = mock.Mock(content=html) results = bing_news.response(response) self.assertEqual(type(results), list) - self.assertEqual(len(results), 6) + self.assertEqual(len(results), 1) + self.assertEqual(results[0]['title'], 'Title') + self.assertEqual(results[0]['url'], 'http://another.url.of.article/') + self.assertEqual(results[0]['content'], 'Article Content') + self.assertEqual(results[0]['thumbnail'], 'http://another.bing.com/image') + + html = """ + + + python - Bing News + https://www.bing.com:443/news/search?q=python&setmkt=en-US&first=1&format=RSS + Search results + + http://10.53.64.9/rsslogo.gif + test + https://www.bing.com:443/news/search?q=test&setmkt=en-US&first=1&format=RSS + + +""" # noqa - html = """ -
- - Title - -
-
- - - -
-
-
- Article Content -
- metronews.fr -  · - 44 minutes ago -
-
-
- """ response = mock.Mock(content=html) results = bing_news.response(response) self.assertEqual(type(results), list) self.assertEqual(len(results), 0) + + html = """gabarge""" + response = mock.Mock(content=html) + self.assertRaises(lxml.etree.XMLSyntaxError, bing_news.response, response) -- cgit v1.2.3