1#!/usr/bin/env python
2
3from __future__ import unicode_literals
4
5# Allow direct execution
6import os
7import sys
8import unittest
9sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
10
11from test.helper import FakeYDL
12from youtube_dl.extractor import IqiyiIE
13
14
15class IqiyiIEWithCredentials(IqiyiIE):
16    def _get_login_info(self):
17        return 'foo', 'bar'
18
19
20class WarningLogger(object):
21    def __init__(self):
22        self.messages = []
23
24    def warning(self, msg):
25        self.messages.append(msg)
26
27    def debug(self, msg):
28        pass
29
30    def error(self, msg):
31        pass
32
33
34class TestIqiyiSDKInterpreter(unittest.TestCase):
35    def test_iqiyi_sdk_interpreter(self):
36        '''
37        Test the functionality of IqiyiSDKInterpreter by trying to log in
38
39        If `sign` is incorrect, /validate call throws an HTTP 556 error
40        '''
41        logger = WarningLogger()
42        ie = IqiyiIEWithCredentials(FakeYDL({'logger': logger}))
43        ie._login()
44        self.assertTrue('unable to log in:' in logger.messages[0])
45
46
47if __name__ == '__main__':
48    unittest.main()
49