summaryrefslogtreecommitdiff
path: root/tests/unit/engines/test_wolframalpha_api.py
diff options
context:
space:
mode:
authorMarkus Heiser <markus.heiser@darmarit.de>2019-12-22 10:12:33 +0100
committerMarkus Heiser <markus.heiser@darmarit.de>2019-12-22 10:12:33 +0100
commitaea4667fbc0ab33cd1981bc66d1cf1c9a9768023 (patch)
treeed714471cd102b65c9a81418f9e458cd1e2c9bd8 /tests/unit/engines/test_wolframalpha_api.py
parentd1154202bcd27a7cf3a1bed524ee6b24955df8af (diff)
parent34ad3d6b34017523a9502f86b92c17fe389918eb (diff)
Merge branch 'master' of https://github.com/asciimoo/searx into makefile-doc
Diffstat (limited to 'tests/unit/engines/test_wolframalpha_api.py')
-rw-r--r--tests/unit/engines/test_wolframalpha_api.py166
1 files changed, 0 insertions, 166 deletions
diff --git a/tests/unit/engines/test_wolframalpha_api.py b/tests/unit/engines/test_wolframalpha_api.py
deleted file mode 100644
index 0433b34aa..000000000
--- a/tests/unit/engines/test_wolframalpha_api.py
+++ /dev/null
@@ -1,166 +0,0 @@
-# -*- coding: utf-8 -*-
-from collections import defaultdict
-import mock
-from requests import Request
-from searx.engines import wolframalpha_api
-from searx.testing import SearxTestCase
-
-
-class TestWolframAlphaAPIEngine(SearxTestCase):
-
- def test_request(self):
- query = 'test_query'
- dicto = defaultdict(dict)
- params = wolframalpha_api.request(query, dicto)
-
- # TODO: test api_key
- self.assertIn('url', params)
- self.assertIn('https://api.wolframalpha.com/v2/query?', params['url'])
- self.assertIn(query, params['url'])
- self.assertEqual('https://www.wolframalpha.com/input/?i=test_query', params['headers']['Referer'])
-
- def test_replace_pua_chars(self):
- self.assertEqual('i', wolframalpha_api.replace_pua_chars(u'\uf74e'))
-
- def test_response(self):
- self.assertRaises(AttributeError, wolframalpha_api.response, None)
- self.assertRaises(AttributeError, wolframalpha_api.response, [])
- self.assertRaises(AttributeError, wolframalpha_api.response, '')
- self.assertRaises(AttributeError, wolframalpha_api.response, '[]')
-
- referer_url = 'referer_url'
- request = Request(headers={'Referer': referer_url})
-
- # test failure
- xml = '''<?xml version='1.0' encoding='UTF-8'?>
- <queryresult success='false' error='false' />
- '''
- response = mock.Mock(content=xml.encode('utf-8'))
- self.assertEqual(wolframalpha_api.response(response), [])
-
- # test basic case
- xml = b"""<?xml version='1.0' encoding='UTF-8'?>
- <queryresult success='true'
- error='false'
- numpods='3'
- datatypes='Math'
- id='queryresult_id'
- host='http://www4c.wolframalpha.com'
- related='related_url'
- version='2.6'>
- <pod title='Input'
- scanner='Identity'
- id='Input'
- numsubpods='1'>
- <subpod title=''>
- <img src='input_img_src.gif'
- alt='input_img_alt'
- title='input_img_title' />
- <plaintext>input_plaintext</plaintext>
- </subpod>
- </pod>
- <pod title='Result'
- scanner='Simplification'
- id='Result'
- numsubpods='1'
- primary='true'>
- <subpod title=''>
- <img src='result_img_src.gif'
- alt='result_img_alt'
- title='result_img_title' />
- <plaintext>result_plaintext</plaintext>
- </subpod>
- </pod>
- <pod title='Manipulatives illustration'
- scanner='Arithmetic'
- id='Illustration'
- numsubpods='1'>
- <subpod title=''>
- <img src='illustration_img_src.gif'
- alt='illustration_img_alt' />
- <plaintext>illustration_plaintext</plaintext>
- </subpod>
- </pod>
- </queryresult>
- """
- response = mock.Mock(content=xml, request=request)
- results = wolframalpha_api.response(response)
- self.assertEqual(type(results), list)
- self.assertEqual(len(results), 2)
- self.assertEqual('input_plaintext', results[0]['infobox'])
-
- self.assertEqual(len(results[0]['attributes']), 3)
- self.assertEqual('Input', results[0]['attributes'][0]['label'])
- self.assertEqual('input_plaintext', results[0]['attributes'][0]['value'])
- self.assertEqual('Result', results[0]['attributes'][1]['label'])
- self.assertEqual('result_plaintext', results[0]['attributes'][1]['value'])
- self.assertEqual('Manipulatives illustration', results[0]['attributes'][2]['label'])
- self.assertEqual('illustration_img_src.gif', results[0]['attributes'][2]['image']['src'])
- self.assertEqual('illustration_img_alt', results[0]['attributes'][2]['image']['alt'])
-
- self.assertEqual(len(results[0]['urls']), 1)
-
- self.assertEqual(referer_url, results[0]['urls'][0]['url'])
- self.assertEqual('Wolfram|Alpha', results[0]['urls'][0]['title'])
- self.assertEqual(referer_url, results[1]['url'])
- self.assertEqual('Wolfram|Alpha (input_plaintext)', results[1]['title'])
- self.assertIn('result_plaintext', results[1]['content'])
-
- # test calc
- xml = b"""<?xml version='1.0' encoding='UTF-8'?>
- <queryresult success='true'
- error='false'
- numpods='2'
- datatypes=''
- parsetimedout='false'
- id='queryresult_id'
- host='http://www5b.wolframalpha.com'
- related='related_url'
- version='2.6' >
- <pod title='Indefinite integral'
- scanner='Integral'
- id='IndefiniteIntegral'
- error='false'
- numsubpods='1'
- primary='true'>
- <subpod title=''>
- <img src='integral_image.gif'
- alt='integral_img_alt'
- title='integral_img_title' />
- <plaintext>integral_plaintext</plaintext>
- </subpod>
- </pod>
- <pod title='Plot of the integral'
- scanner='Integral'
- id='Plot'
- error='false'
- numsubpods='1'>
- <subpod title=''>
- <img src='plot.gif'
- alt='plot_alt'
- title='' />
- <plaintext></plaintext>
- </subpod>
- </pod>
- </queryresult>
- """
- response = mock.Mock(content=xml, request=request)
- results = wolframalpha_api.response(response)
- self.assertEqual(type(results), list)
- self.assertEqual(len(results), 2)
- self.assertEqual('integral_plaintext', results[0]['infobox'])
-
- self.assertEqual(len(results[0]['attributes']), 2)
- self.assertEqual('Indefinite integral', results[0]['attributes'][0]['label'])
- self.assertEqual('integral_plaintext', results[0]['attributes'][0]['value'])
- self.assertEqual('Plot of the integral', results[0]['attributes'][1]['label'])
- self.assertEqual('plot.gif', results[0]['attributes'][1]['image']['src'])
- self.assertEqual('plot_alt', results[0]['attributes'][1]['image']['alt'])
-
- self.assertEqual(len(results[0]['urls']), 1)
-
- self.assertEqual(referer_url, results[0]['urls'][0]['url'])
- self.assertEqual('Wolfram|Alpha', results[0]['urls'][0]['title'])
- self.assertEqual(referer_url, results[1]['url'])
- self.assertEqual('Wolfram|Alpha (integral_plaintext)', results[1]['title'])
- self.assertIn('integral_plaintext', results[1]['content'])