diff options
| author | Filippo Valsorda <filippo.valsorda@gmail.com> | 2013-10-05 15:55:58 -0400 | 
|---|---|---|
| committer | Filippo Valsorda <filippo.valsorda@gmail.com> | 2013-10-05 15:55:58 -0400 | 
| commit | 00fcc17aeeab11ce694699bf183d33a3af75aab6 (patch) | |
| tree | 2648e538ae2decba9b8eabf2da73101c1d38954e | |
| parent | e94b783c741b720ab4ee70eb7fc8764be89d63d5 (diff) | |
add capability to suppress expected warnings in tests
| -rw-r--r-- | test/helper.py | 15 | ||||
| -rw-r--r-- | test/test_dailymotion_subtitles.py | 5 | ||||
| -rw-r--r-- | test/test_youtube_subtitles.py | 4 | 
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  | 
