summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorFilippo Valsorda <[email protected]>2013-10-05 15:55:58 -0400
committerFilippo Valsorda <[email protected]>2013-10-05 15:55:58 -0400
commit00fcc17aeeab11ce694699bf183d33a3af75aab6 (patch)
tree2648e538ae2decba9b8eabf2da73101c1d38954e
parente94b783c741b720ab4ee70eb7fc8764be89d63d5 (diff)
downloadyoutube-dl-00fcc17aeeab11ce694699bf183d33a3af75aab6.tar.gz
youtube-dl-00fcc17aeeab11ce694699bf183d33a3af75aab6.zip
add capability to suppress expected warnings in tests
-rw-r--r--test/helper.py15
-rw-r--r--test/test_dailymotion_subtitles.py5
-rw-r--r--test/test_youtube_subtitles.py4
3 files changed, 20 insertions, 4 deletions
diff --git a/test/helper.py b/test/helper.py
index a2b468b50..63f56841f 100644
--- a/test/helper.py
+++ b/test/helper.py
@@ -1,6 +1,8 @@
import io
import json
import os.path
+import re
+import types
import youtube_dl.extractor
from youtube_dl import YoutubeDL, YoutubeDLHandler
@@ -32,6 +34,19 @@ class FakeYDL(YoutubeDL):
raise Exception(s)
def download(self, x):
self.result.append(x)
+ # def expect_warning(self, regex):
+ # # Silence an expected warning matching a regex
+ # def report_warning(self, message):
+ # if re.match(regex, message): return
+ # super(FakeYDL, self).report_warning(regex)
+ # self.report_warning = types.MethodType(report_warning, self)
+ def expect_warning(self, regex):
+ # Silence an expected warning matching a regex
+ old_report_warning = self.report_warning
+ def report_warning(self, message):
+ if re.match(regex, message): return
+ old_report_warning(message)
+ self.report_warning = types.MethodType(report_warning, self)
def get_testcases():
for ie in youtube_dl.extractor.gen_extractors():
diff --git a/test/test_dailymotion_subtitles.py b/test/test_dailymotion_subtitles.py
index 83c65d57e..ed2ad311d 100644
--- a/test/test_dailymotion_subtitles.py
+++ b/test/test_dailymotion_subtitles.py
@@ -2,8 +2,6 @@
import sys
import unittest
-import json
-import io
import hashlib
# Allow direct execution
@@ -45,15 +43,18 @@ class TestDailymotionSubtitles(unittest.TestCase):
subtitles = self.getSubtitles()
self.assertEqual(len(subtitles.keys()), 5)
def test_list_subtitles(self):
+ self.DL.expect_warning(u'Automatic Captions not supported by this server')
self.DL.params['listsubtitles'] = True
info_dict = self.getInfoDict()
self.assertEqual(info_dict, None)
def test_automatic_captions(self):
+ self.DL.expect_warning(u'Automatic Captions not supported by this server')
self.DL.params['writeautomaticsub'] = True
self.DL.params['subtitleslang'] = ['en']
subtitles = self.getSubtitles()
self.assertTrue(len(subtitles.keys()) == 0)
def test_nosubtitles(self):
+ self.DL.expect_warning(u'video doesn\'t have subtitles')
self.url = 'http://www.dailymotion.com/video/x12u166_le-zapping-tele-star-du-08-aout-2013_tv'
self.DL.params['writesubtitles'] = True
self.DL.params['allsubtitles'] = True
diff --git a/test/test_youtube_subtitles.py b/test/test_youtube_subtitles.py
index 168e6c66c..f9b0c1ad0 100644
--- a/test/test_youtube_subtitles.py
+++ b/test/test_youtube_subtitles.py
@@ -2,8 +2,6 @@
import sys
import unittest
-import json
-import io
import hashlib
# Allow direct execution
@@ -56,6 +54,7 @@ class TestYoutubeSubtitles(unittest.TestCase):
subtitles = self.getSubtitles()
self.assertEqual(md5(subtitles['en']), '356cdc577fde0c6783b9b822e7206ff7')
def test_youtube_list_subtitles(self):
+ self.DL.expect_warning(u'Video doesn\'t have automatic captions')
self.DL.params['listsubtitles'] = True
info_dict = self.getInfoDict()
self.assertEqual(info_dict, None)
@@ -66,6 +65,7 @@ class TestYoutubeSubtitles(unittest.TestCase):
subtitles = self.getSubtitles()
self.assertTrue(subtitles['it'] is not None)
def test_youtube_nosubtitles(self):
+ self.DL.expect_warning(u'video doesn\'t have subtitles')
self.url = 'sAjKT8FhjI8'
self.DL.params['writesubtitles'] = True
self.DL.params['allsubtitles'] = True