3 # DO NOT EDIT THIS FILE BY HAND!
4 # It is auto-generated from tests.json and gentests.py.
14 # Allow direct execution
16 sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
18 import youtube_dl.FileDownloader
19 import youtube_dl.InfoExtractors
20 from youtube_dl.utils import *
22 # General configuration (from __init__, not very elegant...)
23 jar = compat_cookiejar.CookieJar()
24 cookie_processor = compat_urllib_request.HTTPCookieProcessor(jar)
25 proxy_handler = compat_urllib_request.ProxyHandler()
26 opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler())
27 compat_urllib_request.install_opener(opener)
28 socket.setdefaulttimeout(300) # 5 minutes should be enough (famous last words)
30 class FileDownloader(youtube_dl.FileDownloader):
31 def __init__(self, *args, **kwargs):
32 youtube_dl.FileDownloader.__init__(self, *args, **kwargs)
33 self.to_stderr = self.to_screen
36 with open(fn, 'rb') as f:
37 return hashlib.md5(f.read()).hexdigest()
39 _skip_unless = unittest.skipUnless
40 except AttributeError: # Python 2.6
41 def _skip_unless(cond, reason='No reason given'):
43 # Start the function name with test to appease nosetests-2.6
44 def test_wfunc(*args, **kwargs):
46 return f(*args, **kwargs)
50 test_wfunc.__name__ = f.__name__
53 _skip = lambda *args, **kwargs: _skip_unless(False, *args, **kwargs)
55 class DownloadTest(unittest.TestCase):
56 PARAMETERS_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), "parameters.json")
62 with io.open(self.PARAMETERS_FILE, encoding='utf-8') as pf:
63 self.parameters = json.load(pf)
65 @_skip_unless(youtube_dl.InfoExtractors.YoutubeIE._WORKING, "IE marked as not _WORKING")
66 def test_Youtube(self):
67 filename = 'BaW_jenozKc.mp4'
68 params = self.parameters
69 fd = FileDownloader(params)
70 fd.add_info_extractor(youtube_dl.InfoExtractors.YoutubeIE())
71 fd.download(['http://www.youtube.com/watch?v=BaW_jenozKc'])
72 self.assertTrue(os.path.exists(filename))
74 @_skip_unless(youtube_dl.InfoExtractors.DailymotionIE._WORKING, "IE marked as not _WORKING")
75 def test_Dailymotion(self):
76 filename = 'x33vw9.mp4'
77 params = self.parameters
78 fd = FileDownloader(params)
79 fd.add_info_extractor(youtube_dl.InfoExtractors.DailymotionIE())
80 fd.download(['http://www.dailymotion.com/video/x33vw9_tutoriel-de-youtubeur-dl-des-video_tech'])
81 self.assertTrue(os.path.exists(filename))
82 md5_for_file = _file_md5(filename)
83 self.assertEqual(md5_for_file, '392c4b85a60a90dc4792da41ce3144eb')
85 @_skip_unless(youtube_dl.InfoExtractors.MetacafeIE._WORKING, "IE marked as not _WORKING")
86 def test_Metacafe(self):
87 filename = '_aUehQsCQtM.flv'
88 params = self.parameters
89 fd = FileDownloader(params)
90 fd.add_info_extractor(youtube_dl.InfoExtractors.MetacafeIE())
91 fd.add_info_extractor(youtube_dl.InfoExtractors.YoutubeIE())
92 fd.download(['http://www.metacafe.com/watch/yt-_aUehQsCQtM/the_electric_company_short_i_pbs_kids_go/'])
93 self.assertTrue(os.path.exists(filename))
95 @_skip_unless(youtube_dl.InfoExtractors.BlipTVIE._WORKING, "IE marked as not _WORKING")
96 def test_BlipTV(self):
97 filename = '5779306.m4v'
98 params = self.parameters
99 fd = FileDownloader(params)
100 fd.add_info_extractor(youtube_dl.InfoExtractors.BlipTVIE())
101 fd.download(['http://blip.tv/cbr/cbr-exclusive-gotham-city-imposters-bats-vs-jokerz-short-3-5796352'])
102 self.assertTrue(os.path.exists(filename))
103 md5_for_file = _file_md5(filename)
104 self.assertEqual(md5_for_file, 'b2d849efcf7ee18917e4b4d9ff37cafe')
106 @_skip_unless(youtube_dl.InfoExtractors.XVideosIE._WORKING, "IE marked as not _WORKING")
107 def test_XVideos(self):
108 filename = '939581.flv'
109 params = self.parameters
110 fd = FileDownloader(params)
111 fd.add_info_extractor(youtube_dl.InfoExtractors.XVideosIE())
112 fd.download(['http://www.xvideos.com/video939581/funny_porns_by_s_-1'])
113 self.assertTrue(os.path.exists(filename))
114 md5_for_file = _file_md5(filename)
115 self.assertEqual(md5_for_file, '1d0c835822f0a71a7bf011855db929d0')
117 @_skip_unless(youtube_dl.InfoExtractors.VimeoIE._WORKING, "IE marked as not _WORKING")
118 def test_Vimeo(self):
119 filename = '14160053.mp4'
120 params = self.parameters
121 fd = FileDownloader(params)
122 fd.add_info_extractor(youtube_dl.InfoExtractors.VimeoIE())
123 fd.download(['http://vimeo.com/14160053'])
124 self.assertTrue(os.path.exists(filename))
125 md5_for_file = _file_md5(filename)
126 self.assertEqual(md5_for_file, '60540a4ec7cc378ec84b919c0aed5023')
128 @_skip_unless(youtube_dl.InfoExtractors.SoundcloudIE._WORKING, "IE marked as not _WORKING")
129 def test_Soundcloud(self):
130 filename = '62986583.mp3'
131 params = self.parameters
132 fd = FileDownloader(params)
133 fd.add_info_extractor(youtube_dl.InfoExtractors.SoundcloudIE())
134 fd.download(['http://soundcloud.com/ethmusic/lostin-powers-she-so-heavy'])
135 self.assertTrue(os.path.exists(filename))
136 md5_for_file = _file_md5(filename)
137 self.assertEqual(md5_for_file, 'ebef0a451b909710ed1d7787dddbf0d7')
139 @_skip_unless(youtube_dl.InfoExtractors.StanfordOpenClassroomIE._WORKING, "IE marked as not _WORKING")
140 def test_StanfordOpenClassroom(self):
141 filename = 'PracticalUnix_intro-environment.mp4'
142 params = self.parameters
143 fd = FileDownloader(params)
144 fd.add_info_extractor(youtube_dl.InfoExtractors.StanfordOpenClassroomIE())
145 fd.download(['http://openclassroom.stanford.edu/MainFolder/VideoPage.php?course=PracticalUnix&video=intro-environment&speed=100'])
146 self.assertTrue(os.path.exists(filename))
147 md5_for_file = _file_md5(filename)
148 self.assertEqual(md5_for_file, '544a9468546059d4e80d76265b0443b8')
150 @_skip_unless(youtube_dl.InfoExtractors.XNXXIE._WORKING, "IE marked as not _WORKING")
152 filename = '1135332.flv'
153 params = self.parameters
154 fd = FileDownloader(params)
155 fd.add_info_extractor(youtube_dl.InfoExtractors.XNXXIE())
156 fd.download(['http://video.xnxx.com/video1135332/lida_naked_funny_actress_5_'])
157 self.assertTrue(os.path.exists(filename))
158 md5_for_file = _file_md5(filename)
159 self.assertEqual(md5_for_file, '0831677e2b4761795f68d417e0b7b445')
161 @_skip_unless(youtube_dl.InfoExtractors.YoukuIE._WORKING, "IE marked as not _WORKING")
162 def test_Youku(self):
163 filename = 'XNDgyMDQ2NTQw_part00.flv'
164 params = self.parameters
165 params["test"] = False
166 fd = FileDownloader(params)
167 fd.add_info_extractor(youtube_dl.InfoExtractors.YoukuIE())
168 fd.download(['http://v.youku.com/v_show/id_XNDgyMDQ2NTQw.html'])
169 self.assertTrue(os.path.exists(filename))
170 md5_for_file = _file_md5(filename)
171 self.assertEqual(md5_for_file, 'ffe3f2e435663dc2d1eea34faeff5b5b')
175 if os.path.exists('BaW_jenozKc.mp4'):
176 os.remove('BaW_jenozKc.mp4')
177 if os.path.exists('x33vw9.mp4'):
178 os.remove('x33vw9.mp4')
179 if os.path.exists('_aUehQsCQtM.flv'):
180 os.remove('_aUehQsCQtM.flv')
181 if os.path.exists('5779306.m4v'):
182 os.remove('5779306.m4v')
183 if os.path.exists('939581.flv'):
184 os.remove('939581.flv')
185 if os.path.exists('14160053.mp4'):
186 os.remove('14160053.mp4')
187 if os.path.exists('62986583.mp3'):
188 os.remove('62986583.mp3')
189 if os.path.exists('PracticalUnix_intro-environment.mp4'):
190 os.remove('PracticalUnix_intro-environment.mp4')
191 if os.path.exists('1135332.flv'):
192 os.remove('1135332.flv')
193 if os.path.exists('XNDgyMDQ2NTQw_part00.flv'):
194 os.remove('XNDgyMDQ2NTQw_part00.flv')
198 if __name__ == '__main__':