# -*- coding: utf-8 -*- from collections import defaultdict import mock from searx.engines import btdigg from searx.testing import SearxTestCase class TestBtdiggEngine(SearxTestCase): def test_request(self): query = 'test_query' dicto = defaultdict(dict) dicto['pageno'] = 0 params = btdigg.request(query, dicto) self.assertIn('url', params) self.assertIn(query, params['url']) self.assertIn('btdigg.org', params['url']) def test_response(self): self.assertRaises(AttributeError, btdigg.response, None) self.assertRaises(AttributeError, btdigg.response, []) self.assertRaises(AttributeError, btdigg.response, '') self.assertRaises(AttributeError, btdigg.response, '[]') response = mock.Mock(content='') self.assertEqual(btdigg.response(response), []) html = """
1
Should be the title
[magnet] [cloud] Taille: 8 B Fichiers: 710 Téléchargements: 5 Temps: 417.8 jours Dernière mise à jour: 5.3 jours Faux: Aucun
                            Content
                        
""" response = mock.Mock(content=html) results = btdigg.response(response) self.assertEqual(type(results), list) self.assertEqual(len(results), 1) self.assertEqual(results[0]['title'], 'Should be the title') self.assertEqual(results[0]['url'], 'https://btdigg.org/url') self.assertEqual(results[0]['content'], 'Content') self.assertEqual(results[0]['seed'], 5) self.assertEqual(results[0]['leech'], 0) self.assertEqual(results[0]['filesize'], 8) self.assertEqual(results[0]['files'], 710) self.assertEqual(results[0]['magnetlink'], 'magnet:?xt=urn:btih:magnet&dn=Test') html = """
""" response = mock.Mock(content=html) results = btdigg.response(response) self.assertEqual(type(results), list) self.assertEqual(len(results), 0) html = """
1
Should be the title
[magnet] [cloud] Taille: 1 KB Fichiers: 710 Téléchargements: 5 Temps: 417.8 jours Dernière mise à jour: 5.3 jours Faux: Aucun
                            Content
                        
1
Should be the title
[magnet] [cloud] Taille: 1 MB Fichiers: a Téléchargements: 4 Temps: 417.8 jours Dernière mise à jour: 5.3 jours Faux: Aucun
                            Content
                        
1
Should be the title
[magnet] [cloud] Taille: 1 GB Fichiers: 710 Téléchargements: 3 Temps: 417.8 jours Dernière mise à jour: 5.3 jours Faux: Aucun
                            Content
                        
1
Should be the title
[magnet] [cloud] Taille: 1 TB Fichiers: 710 Téléchargements: 2 Temps: 417.8 jours Dernière mise à jour: 5.3 jours Faux: Aucun
                            Content
                        
1
Should be the title
[magnet] [cloud] Taille: a TB Fichiers: 710 Téléchargements: z Temps: 417.8 jours Dernière mise à jour: 5.3 jours Faux: Aucun
                            Content
                        
""" response = mock.Mock(content=html) results = btdigg.response(response) self.assertEqual(type(results), list) self.assertEqual(len(results), 5) self.assertEqual(results[0]['title'], 'Should be the title') self.assertEqual(results[0]['url'], 'https://btdigg.org/url') self.assertEqual(results[0]['content'], 'Content') self.assertEqual(results[0]['seed'], 5) self.assertEqual(results[0]['leech'], 0) self.assertEqual(results[0]['files'], 710) self.assertEqual(results[0]['magnetlink'], 'magnet:?xt=urn:btih:magnet&dn=Test') self.assertEqual(results[0]['filesize'], 1024) self.assertEqual(results[1]['filesize'], 1048576) self.assertEqual(results[2]['filesize'], 1073741824) self.assertEqual(results[3]['filesize'], 1099511627776)