add capability to suppress expected warnings in tests
This commit is contained in:
		
							parent
							
								
									e94b783c74
								
							
						
					
					
						commit
						00fcc17aee
					
				
					 3 changed files with 20 additions and 4 deletions
				
			
		| 
						 | 
				
			
			@ -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():
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue