better Vimeo tests; fixed a couple of VimeoIE fields
This commit is contained in:
		@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,6 @@
 | 
			
		||||
 | 
			
		||||
import json
 | 
			
		||||
import os
 | 
			
		||||
import socket
 | 
			
		||||
import sys
 | 
			
		||||
import unittest
 | 
			
		||||
 | 
			
		||||
@@ -22,7 +21,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):
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,6 @@
 | 
			
		||||
 | 
			
		||||
import sys
 | 
			
		||||
import unittest
 | 
			
		||||
import socket
 | 
			
		||||
import json
 | 
			
		||||
 | 
			
		||||
# Allow direct execution
 | 
			
		||||
@@ -22,7 +21,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 FakeDownloader(object):
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,6 @@
 | 
			
		||||
 | 
			
		||||
import sys
 | 
			
		||||
import unittest
 | 
			
		||||
import socket
 | 
			
		||||
import json
 | 
			
		||||
import io
 | 
			
		||||
import hashlib
 | 
			
		||||
@@ -24,7 +23,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 FakeDownloader(object):
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
 
 | 
			
		||||
@@ -37,9 +37,16 @@
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Vimeo",
 | 
			
		||||
    "md5":  "60540a4ec7cc378ec84b919c0aed5023",
 | 
			
		||||
    "url":  "http://vimeo.com/14160053",
 | 
			
		||||
    "file": "14160053.mp4"
 | 
			
		||||
    "md5":  "8879b6cc097e987f02484baf890129e5",
 | 
			
		||||
    "url":  "http://vimeo.com/56015672",
 | 
			
		||||
    "file": "56015672.mp4",
 | 
			
		||||
    "info_dict": {
 | 
			
		||||
      "title": "youtube-dl test video - ★ \" ' 幸 / \\ ä ↭ 𝕐",
 | 
			
		||||
      "uploader": "Filippo Valsorda",
 | 
			
		||||
      "uploader_id": "user7108434",
 | 
			
		||||
      "upload_date": "20121220",
 | 
			
		||||
      "description": "This is a test case for youtube-dl.\nFor more information, see github.com/rg3/youtube-dl\nTest chars: ★ \" ' 幸 / \\ ä ↭ 𝕐"
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "name": "Soundcloud",
 | 
			
		||||
 
 | 
			
		||||
@@ -1018,9 +1018,9 @@ class VimeoIE(InfoExtractor):
 | 
			
		||||
 | 
			
		||||
        # Extract upload date
 | 
			
		||||
        video_upload_date = None
 | 
			
		||||
        mobj = re.search(r'<span id="clip-date" style="display:none">[^:]*: (.*?)( \([^\(]*\))?</span>', webpage)
 | 
			
		||||
        mobj = re.search(r'<meta itemprop="dateCreated" content="(\d{4})-(\d{2})-(\d{2})T', webpage)
 | 
			
		||||
        if mobj is not None:
 | 
			
		||||
            video_upload_date = mobj.group(1)
 | 
			
		||||
            video_upload_date = mobj.group(1) + mobj.group(2) + mobj.group(3)
 | 
			
		||||
 | 
			
		||||
        # Vimeo specific: extract request signature and timestamp
 | 
			
		||||
        sig = config['request']['signature']
 | 
			
		||||
 
 | 
			
		||||
@@ -298,7 +298,8 @@ def clean_html(html):
 | 
			
		||||
    """Clean an HTML snippet into a readable string"""
 | 
			
		||||
    # Newline vs <br />
 | 
			
		||||
    html = html.replace('\n', ' ')
 | 
			
		||||
    html = re.sub('\s*<\s*br\s*/?\s*>\s*', '\n', html)
 | 
			
		||||
    html = re.sub(r'\s*<\s*br\s*/?\s*>\s*', '\n', html)
 | 
			
		||||
    html = re.sub(r'<\s*/\s*p\s*>\s*<\s*p[^>]*>', '\n', html)
 | 
			
		||||
    # Strip html tags
 | 
			
		||||
    html = re.sub('<.*?>', '', html)
 | 
			
		||||
    # Replace html entities
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user