Browse Source

[fix] bing unicode encode error - fixes #408

Adam Tauber 9 years ago
parent
commit
604f32f672

+ 1 - 1
searx/engines/bing.py

@@ -52,7 +52,7 @@ def request(query, params):
 def response(resp):
 def response(resp):
     results = []
     results = []
 
 
-    dom = html.fromstring(resp.content)
+    dom = html.fromstring(resp.text)
 
 
     # parse results
     # parse results
     for result in dom.xpath('//div[@class="sa_cc"]'):
     for result in dom.xpath('//div[@class="sa_cc"]'):

+ 1 - 1
searx/engines/bing_images.py

@@ -63,7 +63,7 @@ def request(query, params):
 def response(resp):
 def response(resp):
     results = []
     results = []
 
 
-    dom = html.fromstring(resp.content)
+    dom = html.fromstring(resp.text)
 
 
     # init regex for yaml-parsing
     # init regex for yaml-parsing
     p = re.compile('({|,)([a-z]+):(")')
     p = re.compile('({|,)([a-z]+):(")')

+ 1 - 1
searx/engines/bing_news.py

@@ -68,7 +68,7 @@ def request(query, params):
 def response(resp):
 def response(resp):
     results = []
     results = []
 
 
-    rss = etree.fromstring(resp.content)
+    rss = etree.fromstring(resp.text)
 
 
     ns = rss.nsmap
     ns = rss.nsmap
 
 

+ 4 - 4
searx/tests/engines/test_bing.py

@@ -29,10 +29,10 @@ class TestBingEngine(SearxTestCase):
         self.assertRaises(AttributeError, bing.response, '')
         self.assertRaises(AttributeError, bing.response, '')
         self.assertRaises(AttributeError, bing.response, '[]')
         self.assertRaises(AttributeError, bing.response, '[]')
 
 
-        response = mock.Mock(content='<html></html>')
+        response = mock.Mock(text='<html></html>')
         self.assertEqual(bing.response(response), [])
         self.assertEqual(bing.response(response), [])
 
 
-        response = mock.Mock(content='<html></html>')
+        response = mock.Mock(text='<html></html>')
         self.assertEqual(bing.response(response), [])
         self.assertEqual(bing.response(response), [])
 
 
         html = """
         html = """
@@ -54,7 +54,7 @@ class TestBingEngine(SearxTestCase):
             </div>
             </div>
         </div>
         </div>
         """
         """
-        response = mock.Mock(content=html)
+        response = mock.Mock(text=html)
         results = bing.response(response)
         results = bing.response(response)
         self.assertEqual(type(results), list)
         self.assertEqual(type(results), list)
         self.assertEqual(len(results), 1)
         self.assertEqual(len(results), 1)
@@ -81,7 +81,7 @@ class TestBingEngine(SearxTestCase):
             </div>
             </div>
         </li>
         </li>
         """
         """
-        response = mock.Mock(content=html)
+        response = mock.Mock(text=html)
         results = bing.response(response)
         results = bing.response(response)
         self.assertEqual(type(results), list)
         self.assertEqual(type(results), list)
         self.assertEqual(len(results), 1)
         self.assertEqual(len(results), 1)

+ 5 - 5
searx/tests/engines/test_bing_images.py

@@ -31,10 +31,10 @@ class TestBingImagesEngine(SearxTestCase):
         self.assertRaises(AttributeError, bing_images.response, '')
         self.assertRaises(AttributeError, bing_images.response, '')
         self.assertRaises(AttributeError, bing_images.response, '[]')
         self.assertRaises(AttributeError, bing_images.response, '[]')
 
 
-        response = mock.Mock(content='<html></html>')
+        response = mock.Mock(text='<html></html>')
         self.assertEqual(bing_images.response(response), [])
         self.assertEqual(bing_images.response(response), [])
 
 
-        response = mock.Mock(content='<html></html>')
+        response = mock.Mock(text='<html></html>')
         self.assertEqual(bing_images.response(response), [])
         self.assertEqual(bing_images.response(response), [])
 
 
         html = """
         html = """
@@ -52,7 +52,7 @@ oh:&quot;238&quot;,tft:&quot;0&quot;,oi:&quot;http://www.image.url/Images/Test%2
         </div>
         </div>
         """
         """
         html = html.replace('\r\n', '').replace('\n', '').replace('\r', '')
         html = html.replace('\r\n', '').replace('\n', '').replace('\r', '')
-        response = mock.Mock(content=html)
+        response = mock.Mock(text=html)
         results = bing_images.response(response)
         results = bing_images.response(response)
         self.assertEqual(type(results), list)
         self.assertEqual(type(results), list)
         self.assertEqual(len(results), 1)
         self.assertEqual(len(results), 1)
@@ -75,7 +75,7 @@ oh:&quot;238&quot;,tft:&quot;0&quot;,oi:&quot;http://www.image.url/Images/Test%2
             style="height:144px;" width="178" height="144"/>
             style="height:144px;" width="178" height="144"/>
         </a>
         </a>
         """
         """
-        response = mock.Mock(content=html)
+        response = mock.Mock(text=html)
         results = bing_images.response(response)
         results = bing_images.response(response)
         self.assertEqual(type(results), list)
         self.assertEqual(type(results), list)
         self.assertEqual(len(results), 0)
         self.assertEqual(len(results), 0)
@@ -263,7 +263,7 @@ oh:&quot;238&quot;,tft:&quot;0&quot;,oi:&quot;http://www.image.url/Images/Test%2
         </div>
         </div>
         """
         """
         html = html.replace('\r\n', '').replace('\n', '').replace('\r', '')
         html = html.replace('\r\n', '').replace('\n', '').replace('\r', '')
-        response = mock.Mock(content=html)
+        response = mock.Mock(text=html)
         results = bing_images.response(response)
         results = bing_images.response(response)
         self.assertEqual(type(results), list)
         self.assertEqual(type(results), list)
         self.assertEqual(len(results), 10)
         self.assertEqual(len(results), 10)

+ 6 - 6
searx/tests/engines/test_bing_news.py

@@ -28,10 +28,10 @@ class TestBingNewsEngine(SearxTestCase):
         self.assertRaises(AttributeError, bing_news.response, '')
         self.assertRaises(AttributeError, bing_news.response, '')
         self.assertRaises(AttributeError, bing_news.response, '[]')
         self.assertRaises(AttributeError, bing_news.response, '[]')
 
 
-        response = mock.Mock(content='<html></html>')
+        response = mock.Mock(text='<html></html>')
         self.assertEqual(bing_news.response(response), [])
         self.assertEqual(bing_news.response(response), [])
 
 
-        response = mock.Mock(content='<html></html>')
+        response = mock.Mock(text='<html></html>')
         self.assertEqual(bing_news.response(response), [])
         self.assertEqual(bing_news.response(response), [])
 
 
         html = """<?xml version="1.0" encoding="utf-8" ?>
         html = """<?xml version="1.0" encoding="utf-8" ?>
@@ -66,7 +66,7 @@ class TestBingNewsEngine(SearxTestCase):
         </item>
         </item>
     </channel>
     </channel>
 </rss>"""  # noqa
 </rss>"""  # noqa
-        response = mock.Mock(content=html)
+        response = mock.Mock(text=html)
         results = bing_news.response(response)
         results = bing_news.response(response)
         self.assertEqual(type(results), list)
         self.assertEqual(type(results), list)
         self.assertEqual(len(results), 2)
         self.assertEqual(len(results), 2)
@@ -105,7 +105,7 @@ class TestBingNewsEngine(SearxTestCase):
         </item>
         </item>
     </channel>
     </channel>
 </rss>"""  # noqa
 </rss>"""  # noqa
-        response = mock.Mock(content=html)
+        response = mock.Mock(text=html)
         results = bing_news.response(response)
         results = bing_news.response(response)
         self.assertEqual(type(results), list)
         self.assertEqual(type(results), list)
         self.assertEqual(len(results), 1)
         self.assertEqual(len(results), 1)
@@ -128,11 +128,11 @@ class TestBingNewsEngine(SearxTestCase):
     </channel>
     </channel>
 </rss>"""  # noqa
 </rss>"""  # noqa
 
 
-        response = mock.Mock(content=html)
+        response = mock.Mock(text=html)
         results = bing_news.response(response)
         results = bing_news.response(response)
         self.assertEqual(type(results), list)
         self.assertEqual(type(results), list)
         self.assertEqual(len(results), 0)
         self.assertEqual(len(results), 0)
 
 
         html = """<?xml version="1.0" encoding="utf-8" ?>gabarge"""
         html = """<?xml version="1.0" encoding="utf-8" ?>gabarge"""
-        response = mock.Mock(content=html)
+        response = mock.Mock(text=html)
         self.assertRaises(lxml.etree.XMLSyntaxError, bing_news.response, response)
         self.assertRaises(lxml.etree.XMLSyntaxError, bing_news.response, response)