test_gigablast.py 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. from collections import defaultdict
  2. import mock
  3. from searx.engines import gigablast
  4. from searx.testing import SearxTestCase
  5. class TestGigablastEngine(SearxTestCase):
  6. def test_request(self):
  7. query = 'test_query'
  8. dicto = defaultdict(dict)
  9. dicto['pageno'] = 0
  10. dicto['language'] = 'all'
  11. params = gigablast.request(query, dicto)
  12. self.assertTrue('url' in params)
  13. self.assertTrue(query in params['url'])
  14. self.assertTrue('gigablast.com' in params['url'])
  15. def test_response(self):
  16. self.assertRaises(AttributeError, gigablast.response, None)
  17. self.assertRaises(AttributeError, gigablast.response, [])
  18. self.assertRaises(AttributeError, gigablast.response, '')
  19. self.assertRaises(AttributeError, gigablast.response, '[]')
  20. response = mock.Mock(content='<response></response>')
  21. self.assertEqual(gigablast.response(response), [])
  22. response = mock.Mock(content='<response></response>')
  23. self.assertEqual(gigablast.response(response), [])
  24. xml = """<?xml version="1.0" encoding="UTF-8" ?>
  25. <response>
  26. <hits>5941888</hits>
  27. <moreResultsFollow>1</moreResultsFollow>
  28. <result>
  29. <title><![CDATA[This should be the title]]></title>
  30. <sum><![CDATA[This should be the content.]]></sum>
  31. <url><![CDATA[http://this.should.be.the.link/]]></url>
  32. <size>90.5</size>
  33. <docId>145414002633</docId>
  34. <siteId>2660021087</siteId>
  35. <domainId>2660021087</domainId>
  36. <spidered>1320519373</spidered>
  37. <indexed>1320519373</indexed>
  38. <pubdate>4294967295</pubdate>
  39. <isModDate>0</isModDate>
  40. <language><![CDATA[English]]></language>
  41. <charset><![CDATA[UTF-8]]></charset>
  42. </result>
  43. </response>
  44. """
  45. response = mock.Mock(content=xml)
  46. results = gigablast.response(response)
  47. self.assertEqual(type(results), list)
  48. self.assertEqual(len(results), 1)
  49. self.assertEqual(results[0]['title'], 'This should be the title')
  50. self.assertEqual(results[0]['url'], 'http://this.should.be.the.link/')
  51. self.assertEqual(results[0]['content'], 'This should be the content.')