diff options
| -rw-r--r-- | test/helper.py | 33 | ||||
| -rw-r--r-- | test/test_youtube_lists.py | 24 | ||||
| -rwxr-xr-x | test/test_youtube_sig.py | 22 | ||||
| -rw-r--r-- | test/test_youtube_subtitles.py | 26 | 
4 files changed, 57 insertions, 48 deletions
| diff --git a/test/helper.py b/test/helper.py new file mode 100644 index 000000000..842ffc2fd --- /dev/null +++ b/test/helper.py @@ -0,0 +1,33 @@ +import io +import json +import os.path + +from youtube_dl import YoutubeDL, YoutubeDLHandler +from youtube_dl.utils import ( +    compat_cookiejar, +    compat_urllib_request, +) + +# General configuration (from __init__, not very elegant...) +jar = compat_cookiejar.CookieJar() +cookie_processor = compat_urllib_request.HTTPCookieProcessor(jar) +proxy_handler = compat_urllib_request.ProxyHandler() +opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler()) +compat_urllib_request.install_opener(opener) + +PARAMETERS_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), "parameters.json") +with io.open(PARAMETERS_FILE, encoding='utf-8') as pf: +    parameters = json.load(pf) + +class FakeYDL(YoutubeDL): +    def __init__(self): +        self.result = [] +        # Different instances of the downloader can't share the same dictionary +        # some test set the "sublang" parameter, which would break the md5 checks. +        self.params = dict(parameters) +    def to_screen(self, s): +        print(s) +    def trouble(self, s, tb=None): +        raise Exception(s) +    def download(self, x): +        self.result.append(x)
\ No newline at end of file diff --git a/test/test_youtube_lists.py b/test/test_youtube_lists.py index 320b44082..4486b7eb0 100644 --- a/test/test_youtube_lists.py +++ b/test/test_youtube_lists.py @@ -10,30 +10,8 @@ sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))  from youtube_dl.extractor import YoutubeUserIE, YoutubePlaylistIE, YoutubeIE, YoutubeChannelIE  from youtube_dl.utils import * -from youtube_dl import YoutubeDL -PARAMETERS_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), "parameters.json") -with io.open(PARAMETERS_FILE, encoding='utf-8') as pf: -    parameters = json.load(pf) - -# General configuration (from __init__, not very elegant...) -jar = compat_cookiejar.CookieJar() -cookie_processor = compat_urllib_request.HTTPCookieProcessor(jar) -proxy_handler = compat_urllib_request.ProxyHandler() -opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler()) -compat_urllib_request.install_opener(opener) - -class FakeYDL(YoutubeDL): -    def __init__(self): -        self.result = [] -        self.params = parameters -    def to_screen(self, s): -        print(s) -    def trouble(self, s, tb=None): -        raise Exception(s) -    def extract_info(self, url): -        self.result.append(url) -        return url +from helper import FakeYDL  class TestYoutubeLists(unittest.TestCase):      def assertIsPlaylist(self,info): diff --git a/test/test_youtube_sig.py b/test/test_youtube_sig.py new file mode 100755 index 000000000..ddd27a9dc --- /dev/null +++ b/test/test_youtube_sig.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python + +import unittest +import sys + +# Allow direct execution +import os +sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +from youtube_dl.extractor.youtube import YoutubeIE +from helper import FakeYDL + +sig = YoutubeIE(FakeYDL())._decrypt_signature + +class TestYoutubeSig(unittest.TestCase): +    def test_43_43(self): +        wrong = '5AEEAE0EC39677BC65FD9021CCD115F1F2DBD5A59E4.C0B243A3E2DED6769199AF3461781E75122AE135135' +        right = '931EA22157E1871643FA9519676DED253A342B0C.4E95A5DBD2F1F511DCC1209DF56CB77693CE0EAE' +        self.assertEqual(sig(wrong), right) + +if __name__ == '__main__': +    unittest.main() diff --git a/test/test_youtube_subtitles.py b/test/test_youtube_subtitles.py index 5814e13d4..86e09c9b1 100644 --- a/test/test_youtube_subtitles.py +++ b/test/test_youtube_subtitles.py @@ -12,31 +12,7 @@ sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))  from youtube_dl.extractor import YoutubeIE  from youtube_dl.utils import * -from youtube_dl import YoutubeDL - -PARAMETERS_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), "parameters.json") -with io.open(PARAMETERS_FILE, encoding='utf-8') as pf: -    parameters = json.load(pf) - -# General configuration (from __init__, not very elegant...) -jar = compat_cookiejar.CookieJar() -cookie_processor = compat_urllib_request.HTTPCookieProcessor(jar) -proxy_handler = compat_urllib_request.ProxyHandler() -opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler()) -compat_urllib_request.install_opener(opener) - -class FakeYDL(YoutubeDL): -    def __init__(self): -        self.result = [] -        # Different instances of the downloader can't share the same dictionary -        # some test set the "sublang" parameter, which would break the md5 checks. -        self.params = dict(parameters) -    def to_screen(self, s): -        print(s) -    def trouble(self, s, tb=None): -        raise Exception(s) -    def download(self, x): -        self.result.append(x) +from helper import FakeYDL  md5 = lambda s: hashlib.md5(s.encode('utf-8')).hexdigest() | 
