|
|
@ -6,8 +6,8 @@ import os
|
|
|
|
import json
|
|
|
|
import json
|
|
|
|
import unittest
|
|
|
|
import unittest
|
|
|
|
import sys
|
|
|
|
import sys
|
|
|
|
import socket
|
|
|
|
|
|
|
|
import hashlib
|
|
|
|
import hashlib
|
|
|
|
|
|
|
|
import socket
|
|
|
|
|
|
|
|
|
|
|
|
# Allow direct execution
|
|
|
|
# Allow direct execution
|
|
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
|
@ -25,7 +25,6 @@ cookie_processor = compat_urllib_request.HTTPCookieProcessor(jar)
|
|
|
|
proxy_handler = compat_urllib_request.ProxyHandler()
|
|
|
|
proxy_handler = compat_urllib_request.ProxyHandler()
|
|
|
|
opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler())
|
|
|
|
opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler())
|
|
|
|
compat_urllib_request.install_opener(opener)
|
|
|
|
compat_urllib_request.install_opener(opener)
|
|
|
|
socket.setdefaulttimeout(300) # 5 minutes should be enough (famous last words)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class FileDownloader(youtube_dl.FileDownloader):
|
|
|
|
class FileDownloader(youtube_dl.FileDownloader):
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
@ -90,12 +89,12 @@ def generator(test_case):
|
|
|
|
md5_for_file = _file_md5(test_case['file'])
|
|
|
|
md5_for_file = _file_md5(test_case['file'])
|
|
|
|
self.assertEqual(md5_for_file, test_case['md5'])
|
|
|
|
self.assertEqual(md5_for_file, test_case['md5'])
|
|
|
|
info_dict = fd.processed_info_dicts[0]
|
|
|
|
info_dict = fd.processed_info_dicts[0]
|
|
|
|
for (info_element, value) in test_case.get('info_dict', {}).items():
|
|
|
|
for (info_field, value) in test_case.get('info_dict', {}).items():
|
|
|
|
if value.startswith('md5:'):
|
|
|
|
if value.startswith('md5:'):
|
|
|
|
md5_info_value = hashlib.md5(info_dict[info_element]).hexdigest()
|
|
|
|
md5_info_value = hashlib.md5(info_dict.get(info_field, '')).hexdigest()
|
|
|
|
self.assertEqual(value[3:], md5_info_value)
|
|
|
|
self.assertEqual(value[3:], md5_info_value)
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
self.assertEqual(value, info_dict[info_element])
|
|
|
|
self.assertEqual(value, info_dict.get(info_field))
|
|
|
|
|
|
|
|
|
|
|
|
return test_template
|
|
|
|
return test_template
|
|
|
|
|
|
|
|
|
|
|
|