|
|
@ -6,8 +6,8 @@ import os |
|
|
|
import json |
|
|
|
import unittest |
|
|
|
import sys |
|
|
|
import socket |
|
|
|
import hashlib |
|
|
|
import socket |
|
|
|
|
|
|
|
# Allow direct execution |
|
|
|
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() |
|
|
|
opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler()) |
|
|
|
compat_urllib_request.install_opener(opener) |
|
|
|
socket.setdefaulttimeout(300) # 5 minutes should be enough (famous last words) |
|
|
|
|
|
|
|
class FileDownloader(youtube_dl.FileDownloader): |
|
|
|
def __init__(self, *args, **kwargs): |
|
|
@ -90,12 +89,12 @@ def generator(test_case): |
|
|
|
md5_for_file = _file_md5(test_case['file']) |
|
|
|
self.assertEqual(md5_for_file, test_case['md5']) |
|
|
|
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:'): |
|
|
|
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) |
|
|
|
else: |
|
|
|
self.assertEqual(value, info_dict[info_element]) |
|
|
|
self.assertEqual(value, info_dict.get(info_field)) |
|
|
|
|
|
|
|
return test_template |
|
|
|
|
|
|
|