Fix HowCast IE
[youtube-dl] / test / test_youtube_subtitles.py
index 94adc45552e80e9cb1b3ba1dc9bbd3d539d45095..a123e6d72df077efc9228e75a5455d3f80624e00 100644 (file)
@@ -12,6 +12,7 @@ sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 
 from youtube_dl.InfoExtractors import YoutubeIE
 from youtube_dl.utils import *
+from youtube_dl import FileDownloader
 
 PARAMETERS_FILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), "parameters.json")
 with io.open(PARAMETERS_FILE, encoding='utf-8') as pf:
@@ -24,13 +25,13 @@ proxy_handler = compat_urllib_request.ProxyHandler()
 opener = compat_urllib_request.build_opener(proxy_handler, cookie_processor, YoutubeDLHandler())
 compat_urllib_request.install_opener(opener)
 
-class FakeDownloader(object):
+class FakeDownloader(FileDownloader):
     def __init__(self):
         self.result = []
         self.params = parameters
     def to_screen(self, s):
         print(s)
-    def trouble(self, s):
+    def trouble(self, s, tb=None):
         raise Exception(s)
     def download(self, x):
         self.result.append(x)
@@ -43,6 +44,7 @@ class TestYoutubeSubtitles(unittest.TestCase):
         DL.params['allsubtitles'] = False
         DL.params['writesubtitles'] = False
         DL.params['subtitlesformat'] = 'srt'
+        DL.params['listsubtitles'] = False
     def test_youtube_no_subtitles(self):
         DL = FakeDownloader()
         DL.params['writesubtitles'] = False
@@ -79,7 +81,7 @@ class TestYoutubeSubtitles(unittest.TestCase):
         IE = YoutubeIE(DL)
         info_dict = IE.extract('QRS8MkLhQmM')
         subtitles = info_dict[0]['subtitles']
-        self.assertEqual(len(subtitles), 12)
+        self.assertEqual(len(subtitles), 13)
     def test_youtube_subtitles_format(self):
         DL = FakeDownloader()
         DL.params['writesubtitles'] = True
@@ -88,6 +90,12 @@ class TestYoutubeSubtitles(unittest.TestCase):
         info_dict = IE.extract('QRS8MkLhQmM')
         sub = info_dict[0]['subtitles'][0]
         self.assertEqual(md5(sub[2]), '13aeaa0c245a8bed9a451cb643e3ad8b')
+    def test_youtube_list_subtitles(self):
+        DL = FakeDownloader()
+        DL.params['listsubtitles'] = True
+        IE = YoutubeIE(DL)
+        info_dict = IE.extract('QRS8MkLhQmM')
+        self.assertEqual(info_dict, None)
 
 if __name__ == '__main__':
     unittest.main()