# -*- 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('btdig.com', 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(text='')
        self.assertEqual(btdigg.response(response), [])
        html = u"""
        
          
            
            
              
                
                  4217 files 1 GBfound 3 years ago
                
               
             
            
            
               3.9GBdeLibrosByHuasoFromHell(3de4)
               Libros H-Z
               H
 H.H. Hollis - El truco de la espada-pdf.zip
17 KB
               Hagakure - El Libro del Samurai-pdf.zip
95 KB
               Hamsun, Knut (1859-1952)
               Hamsun, Knut - Hambre-pdf.zip
786 KB
              
             
           
         
        """
        response = mock.Mock(text=html.encode('utf-8'))
        results = btdigg.response(response)
        self.assertEqual(type(results), list)
        self.assertEqual(len(results), 1)
        self.assertEqual(results[0]['title'], '3.9GBdeLibrosByHuasoFromHell(3de4)')
        self.assertEqual(results[0]['url'],
                         'http://btdig.com/a72f35b7ee3a10928f02bb799e40ae5db701ed1c/pdf?q=pdf&p=1&order=0')
        self.assertEqual(results[0]['content'],
                         '3.9GBdeLibrosByHuasoFromHell(3de4) | ' +
                         'Libros H-Z | ' +
                         'H H.H. Hollis - El truco de la espada-pdf.zip17 KB | ' +
                         'Hagakure - El Libro del Samurai-pdf.zip95 KB | ' +
                         'Hamsun, Knut (1859-1952) | Hamsun, Knut - Hambre-pdf.zip786 KB | ' +
                         '4214 hidden files1 GB')
        self.assertEqual(results[0]['filesize'], 1 * 1024 * 1024 * 1024)
        self.assertEqual(results[0]['files'], 4217)
        self.assertEqual(results[0]['magnetlink'],
                         'magnet:?xt=urn:btih:a72f35b7ee3a10928f02bb799e40ae5db701ed1c&dn=3.9GBdeLibrosBy...')
        html = """
        
        
        """
        response = mock.Mock(text=html.encode('utf-8'))
        results = btdigg.response(response)
        self.assertEqual(type(results), list)
        self.assertEqual(len(results), 0)