logo

searx

My custom branche(s) on searx, a meta-search engine git clone https://hacktivis.me/git/searx.git
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:

Msearx/engines/wolframalpha_api.py11++++++-----
Msearx/settings.yml2+-
Msearx/tests/engines/test_wolframalpha_noapi.py23+++++++++++++++++++++--
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:&nbsp;</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>