commit: d05c676ed5b1dc5372b1cb380740161b3613f7cc
parent 19d025f0e7ef9a5f41b81fc6c1a9a7114bdae78c
Author: a01200356 <a01200356@itesm.mx>
Date: Sat, 2 Jan 2016 22:29:20 -0600
Add test case in wolframalpha_noapi
[fix] Display multiple answers in wolframalpha_api
Diffstat:
3 files changed, 28 insertions(+), 8 deletions(-)
diff --git a/searx/engines/wolframalpha_api.py b/searx/engines/wolframalpha_api.py
@@ -52,12 +52,13 @@ def response(resp):
if search_results.xpath(failure_xpath):
return []
- # parse answer
- answer = search_results.xpath(answer_xpath)
- if answer:
- answer = replace_pua_chars(answer[0].text)
+ # parse answers
+ answers = search_results.xpath(answer_xpath)
+ if answers:
+ for answer in answers:
+ answer = replace_pua_chars(answer.text)
- results.append({'answer': answer})
+ results.append({'answer': answer})
# TODO: append a result with title and link, like in the no api version
diff --git a/searx/settings.yml b/searx/settings.yml
@@ -305,7 +305,7 @@ engines:
# You can use the engine using the official stable API, but you need an API key
# See : http://products.wolframalpha.com/api/
# engine : wolframalpha_api
- # api_key: 'apikey' # required!
+ # api_key: '5952JX-X52L3VKWT8' # required!
engine : wolframalpha_noapi
timeout: 6.0
diff --git a/searx/tests/engines/test_wolframalpha_noapi.py b/searx/tests/engines/test_wolframalpha_noapi.py
@@ -22,8 +22,27 @@ class TestWolframAlphaNoAPIEngine(SearxTestCase):
self.assertRaises(AttributeError, wolframalpha_noapi.response, '')
self.assertRaises(AttributeError, wolframalpha_noapi.response, '[]')
- # response = mock.Mock(text='<html></html>')
- # self.assertEqual(wolframalpha_noapi.response(response), [])
+ html = """
+ <!DOCTYPE html>
+ <title> ParangaricutirimÃcuaro - Wolfram|Alpha</title>
+ <meta charset="utf-8" />
+ <body>
+ <div id="closest">
+ <p class="pfail">Wolfram|Alpha doesn't know how to interpret your input.</p>
+ <div id="dtips">
+ <div class="tip">
+ <span class="tip-title">Tip: </span>
+ Check your spelling, and use English
+ <span class="tip-extra"></span>
+ </div>
+ </div>
+ </div>
+ </body>
+ </html>
+ """
+
+ response = mock.Mock(text=html)
+ self.assertEqual(wolframalpha_noapi.response(response), [])
html = """
<!DOCTYPE html>