[fix] test in wolframalpha_noapi
This commit is contained in:
		
							parent
							
								
									d997265e55
								
							
						
					
					
						commit
						2a15944b58
					
				| @ -41,8 +41,8 @@ def response(resp): | |||||||
| 
 | 
 | ||||||
|     # the answer is inside a js function |     # the answer is inside a js function | ||||||
|     # answer can be located in different 'pods', although by default it should be in pod_0200 |     # answer can be located in different 'pods', although by default it should be in pod_0200 | ||||||
|     possible_locations = ['pod_0200\.push(.*)\n', |     possible_locations = ['pod_0200\.push\((.*)', | ||||||
|                           'pod_0100\.push(.*)\n'] |                           'pod_0100\.push\((.*)'] | ||||||
| 
 | 
 | ||||||
|     # failed result |     # failed result | ||||||
|     if dom.xpath(failure_xpath): |     if dom.xpath(failure_xpath): | ||||||
| @ -62,7 +62,10 @@ def response(resp): | |||||||
|     if line: |     if line: | ||||||
|         # extract answer from json |         # extract answer from json | ||||||
|         answer = line[line.find('{'):line.rfind('}')+1] |         answer = line[line.find('{'):line.rfind('}')+1] | ||||||
|         answer = loads(answer.encode('unicode-escape')) |         try: | ||||||
|  |             answer = loads(answer) | ||||||
|  |         except Exception: | ||||||
|  |             answer = loads(answer.encode('unicode-escape')) | ||||||
|         answer = answer['stringified'] |         answer = answer['stringified'] | ||||||
| 
 | 
 | ||||||
|         # clean plaintext answer |         # clean plaintext answer | ||||||
|  | |||||||
| @ -149,11 +149,45 @@ class TestWolframAlphaNoAPIEngine(SearxTestCase): | |||||||
|             </body> |             </body> | ||||||
|         </html> |         </html> | ||||||
|         """ |         """ | ||||||
|         # test output in htmlentity |         # test output with htmlentity | ||||||
|         response = mock.Mock(text=html) |         response = mock.Mock(text=html) | ||||||
|         results = wolframalpha_noapi.response(response) |         results = wolframalpha_noapi.response(response) | ||||||
|         self.assertEqual(type(results), list) |         self.assertEqual(type(results), list) | ||||||
|         self.assertEqual(len(results), 2) |         self.assertEqual(len(results), 2) | ||||||
|         self.assertIn("¥".decode('utf-8'), results[0]['answer']) |         self.assertIn('¥'.decode('utf-8'), results[0]['answer']) | ||||||
|         self.assertIn('1 euro to yen - Wolfram|Alpha', results[1]['title']) |         self.assertIn('1 euro to yen - Wolfram|Alpha', results[1]['title']) | ||||||
|         self.assertEquals('http://www.wolframalpha.com/input/?i=+1+euro+to+yen', results[1]['url']) |         self.assertEquals('http://www.wolframalpha.com/input/?i=+1+euro+to+yen', results[1]['url']) | ||||||
|  | 
 | ||||||
|  |         html = """ | ||||||
|  |         <!DOCTYPE html> | ||||||
|  |             <title> distance from nairobi to kyoto in inches - Wolfram|Alpha</title> | ||||||
|  |             <meta charset="utf-8" /> | ||||||
|  |             <body> | ||||||
|  |                 <script type="text/javascript"> | ||||||
|  |                   try { | ||||||
|  |                     if (typeof context.jsonArray.popups.pod_0100 == "undefined" ) { | ||||||
|  |                       context.jsonArray.popups.pod_0100 = []; | ||||||
|  |                     } | ||||||
|  | [...].pod_0100.push( {"stringified": "convert distance | from | Nairobi, Kenya\nto | Kyoto, Japan to inches"}); | ||||||
|  |                   } catch(e) { } | ||||||
|  | 
 | ||||||
|  |                   try { | ||||||
|  |                     if (typeof context.jsonArray.popups.pod_0200 == "undefined" ) { | ||||||
|  |                       context.jsonArray.popups.pod_0200 = []; | ||||||
|  |                     } | ||||||
|  | pod_0200.push({"stringified": "4.295×10^8 inches","mOutput": "Quantity[4.295×10^8,&quot;Inches&quot;]"}); | ||||||
|  | 
 | ||||||
|  |                   } catch(e) { } | ||||||
|  |                 </script> | ||||||
|  |             </body> | ||||||
|  |         </html> | ||||||
|  |         """ | ||||||
|  |         # test output with utf-8 character | ||||||
|  |         response = mock.Mock(text=html) | ||||||
|  |         results = wolframalpha_noapi.response(response) | ||||||
|  |         self.assertEqual(type(results), list) | ||||||
|  |         self.assertEqual(len(results), 2) | ||||||
|  |         self.assertIn('4.295×10^8 inches'.decode('utf-8'), results[0]['answer']) | ||||||
|  |         self.assertIn('distance from nairobi to kyoto in inches - Wolfram|Alpha', results[1]['title']) | ||||||
|  |         self.assertEquals('http://www.wolframalpha.com/input/?i=+distance+from+nairobi+to+kyoto+in+inches', | ||||||
|  |                           results[1]['url']) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user