test_gigablast.py 2.3 KB

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