from collections import defaultdict import mock from searx.engines import digbt from searx.testing import SearxTestCase class TestDigBTEngine(SearxTestCase): def test_request(self): query = 'test_query' dicto = defaultdict(dict) dicto['pageno'] = 0 params = digbt.request(query, dicto) self.assertIn('url', params) self.assertIn(query, params['url']) self.assertIn('digbt.org', params['url']) def test_response(self): self.assertRaises(AttributeError, digbt.response, None) self.assertRaises(AttributeError, digbt.response, []) self.assertRaises(AttributeError, digbt.response, '') self.assertRaises(AttributeError, digbt.response, '[]') response = mock.Mock(text='') self.assertEqual(digbt.response(response), []) html = """
The Big Bang Theory 4 hours ago
  • The Big Bang Theory 2.9 GB
  • ....
Files: 1 Size: 2.9 GB Downloads: 1 Updated: 4 hours ago     magnet-link    
""" response = mock.Mock(text=html.encode('utf-8')) results = digbt.response(response) self.assertEqual(type(results), list) self.assertEqual(len(results), 1) self.assertEqual(results[0]['title'], 'The Big Bang Theory') self.assertEqual(results[0]['url'], 'https://digbt.org/The-Big-Bang-Theory-d2.html') self.assertEqual(results[0]['content'], 'The Big Bang Theory 2.9 GB ....') self.assertEqual(results[0]['filesize'], 3113851289) self.assertEqual(results[0]['magnetlink'], 'magnet:?xt=urn:btih:a&dn=The+Big+Bang+Theory')