diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/helper.py | 6 | ||||
| -rw-r--r-- | test/test_YoutubeDL.py | 1 | ||||
| -rw-r--r-- | test/test_all_urls.py | 6 | ||||
| -rw-r--r-- | test/test_download.py | 13 | ||||
| -rw-r--r-- | test/test_subtitles.py | 1 | ||||
| -rw-r--r-- | test/test_utils.py | 7 | ||||
| -rw-r--r-- | test/test_write_annotations.py | 26 | ||||
| -rw-r--r-- | test/test_youtube_lists.py | 6 | 
8 files changed, 36 insertions, 30 deletions
| diff --git a/test/helper.py b/test/helper.py index 8be37a183..91822935f 100644 --- a/test/helper.py +++ b/test/helper.py @@ -59,7 +59,7 @@ class FakeYDL(YoutubeDL):          params = get_params(override=override)          super(FakeYDL, self).__init__(params, auto_init=False)          self.result = [] -         +      def to_screen(self, s, skip_eol=None):          print(s) @@ -72,8 +72,10 @@ class FakeYDL(YoutubeDL):      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 +            if re.match(regex, message): +                return              old_report_warning(message)          self.report_warning = types.MethodType(report_warning, self) diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py index ab61e1976..f8e4f930e 100644 --- a/test/test_YoutubeDL.py +++ b/test/test_YoutubeDL.py @@ -266,6 +266,7 @@ class TestFormatSelection(unittest.TestCase):              'ext': 'mp4',              'width': None,          } +          def fname(templ):              ydl = YoutubeDL({'outtmpl': templ})              return ydl.prepare_filename(info) diff --git a/test/test_all_urls.py b/test/test_all_urls.py index 965e5d8a5..bd4fe17bf 100644 --- a/test/test_all_urls.py +++ b/test/test_all_urls.py @@ -32,19 +32,19 @@ class TestAllURLsMatching(unittest.TestCase):      def test_youtube_playlist_matching(self):          assertPlaylist = lambda url: self.assertMatch(url, ['youtube:playlist'])          assertPlaylist('ECUl4u3cNGP61MdtwGTqZA0MreSaDybji8') -        assertPlaylist('UUBABnxM4Ar9ten8Mdjj1j0Q') #585 +        assertPlaylist('UUBABnxM4Ar9ten8Mdjj1j0Q')  # 585          assertPlaylist('PL63F0C78739B09958')          assertPlaylist('https://www.youtube.com/playlist?list=UUBABnxM4Ar9ten8Mdjj1j0Q')          assertPlaylist('https://www.youtube.com/course?list=ECUl4u3cNGP61MdtwGTqZA0MreSaDybji8')          assertPlaylist('https://www.youtube.com/playlist?list=PLwP_SiAcdui0KVebT0mU9Apz359a4ubsC') -        assertPlaylist('https://www.youtube.com/watch?v=AV6J6_AeFEQ&playnext=1&list=PL4023E734DA416012') #668 +        assertPlaylist('https://www.youtube.com/watch?v=AV6J6_AeFEQ&playnext=1&list=PL4023E734DA416012')  # 668          self.assertFalse('youtube:playlist' in self.matching_ies('PLtS2H6bU1M'))          # Top tracks          assertPlaylist('https://www.youtube.com/playlist?list=MCUS.20142101')      def test_youtube_matching(self):          self.assertTrue(YoutubeIE.suitable('PLtS2H6bU1M')) -        self.assertFalse(YoutubeIE.suitable('https://www.youtube.com/watch?v=AV6J6_AeFEQ&playnext=1&list=PL4023E734DA416012')) #668 +        self.assertFalse(YoutubeIE.suitable('https://www.youtube.com/watch?v=AV6J6_AeFEQ&playnext=1&list=PL4023E734DA416012'))  # 668          self.assertMatch('http://youtu.be/BaW_jenozKc', ['youtube'])          self.assertMatch('http://www.youtube.com/v/BaW_jenozKc', ['youtube'])          self.assertMatch('https://youtube.googleapis.com/v/BaW_jenozKc', ['youtube']) diff --git a/test/test_download.py b/test/test_download.py index 12cfb5cbe..b2615f338 100644 --- a/test/test_download.py +++ b/test/test_download.py @@ -40,18 +40,22 @@ from youtube_dl.extractor import get_info_extractor  RETRIES = 3 +  class YoutubeDL(youtube_dl.YoutubeDL):      def __init__(self, *args, **kwargs):          self.to_stderr = self.to_screen          self.processed_info_dicts = []          super(YoutubeDL, self).__init__(*args, **kwargs) +      def report_warning(self, message):          # Don't accept warnings during tests          raise ExtractorError(message) +      def process_info(self, info_dict):          self.processed_info_dicts.append(info_dict)          return super(YoutubeDL, self).process_info(info_dict) +  def _file_md5(fn):      with open(fn, 'rb') as f:          return hashlib.md5(f.read()).hexdigest() @@ -61,10 +65,13 @@ defs = gettestcases()  class TestDownload(unittest.TestCase):      maxDiff = None +      def setUp(self):          self.defs = defs -### Dynamically generate tests +# Dynamically generate tests + +  def generator(test_case):      def test_template(self): @@ -101,6 +108,7 @@ def generator(test_case):          ydl = YoutubeDL(params, auto_init=False)          ydl.add_default_info_extractors()          finished_hook_called = set() +          def _hook(status):              if status['status'] == 'finished':                  finished_hook_called.add(status['filename']) @@ -111,6 +119,7 @@ def generator(test_case):              return tc.get('file') or ydl.prepare_filename(tc.get('info_dict', {}))          res_dict = None +          def try_rm_tcs_files(tcs=None):              if tcs is None:                  tcs = test_cases @@ -206,7 +215,7 @@ def generator(test_case):      return test_template -### And add them to TestDownload +# And add them to TestDownload  for n, test_case in enumerate(defs):      test_method = generator(test_case)      tname = 'test_' + str(test_case['name']) diff --git a/test/test_subtitles.py b/test/test_subtitles.py index 94e3290db..2eeb31bc6 100644 --- a/test/test_subtitles.py +++ b/test/test_subtitles.py @@ -23,6 +23,7 @@ from youtube_dl.extractor import (  class BaseTestSubtitles(unittest.TestCase):      url = None      IE = None +      def setUp(self):          self.DL = FakeYDL()          self.ie = self.IE(self.DL) diff --git a/test/test_utils.py b/test/test_utils.py index 9a62322f0..8307599b3 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -45,7 +45,6 @@ from youtube_dl.utils import (      escape_rfc3986,      escape_url,      js_to_json, -    get_filesystem_encoding,      intlist_to_bytes,      args_to_str,  ) @@ -120,16 +119,16 @@ class TestUtil(unittest.TestCase):          self.assertEqual(orderedSet([1, 1, 2, 3, 4, 4, 5, 6, 7, 3, 5]), [1, 2, 3, 4, 5, 6, 7])          self.assertEqual(orderedSet([]), [])          self.assertEqual(orderedSet([1]), [1]) -        #keep the list ordered +        # keep the list ordered          self.assertEqual(orderedSet([135, 1, 1, 1]), [135, 1])      def test_unescape_html(self):          self.assertEqual(unescapeHTML('%20;'), '%20;')          self.assertEqual(              unescapeHTML('é'), 'é') -         +      def test_daterange(self): -        _20century = DateRange("19000101","20000101") +        _20century = DateRange("19000101", "20000101")          self.assertFalse("17890714" in _20century)          _ac = DateRange("00010101")          self.assertTrue("19690721" in _ac) diff --git a/test/test_write_annotations.py b/test/test_write_annotations.py index eac53b285..852553ada 100644 --- a/test/test_write_annotations.py +++ b/test/test_write_annotations.py @@ -31,19 +31,18 @@ params = get_params({  }) -  TEST_ID = 'gr51aVj-mLg'  ANNOTATIONS_FILE = TEST_ID + '.flv.annotations.xml'  EXPECTED_ANNOTATIONS = ['Speech bubble', 'Note', 'Title', 'Spotlight', 'Label'] +  class TestAnnotations(unittest.TestCase):      def setUp(self):          # Clear old files          self.tearDown() -      def test_info_json(self): -        expected = list(EXPECTED_ANNOTATIONS) #Two annotations could have the same text. +        expected = list(EXPECTED_ANNOTATIONS)  # Two annotations could have the same text.          ie = youtube_dl.extractor.YoutubeIE()          ydl = YoutubeDL(params)          ydl.add_info_extractor(ie) @@ -51,7 +50,7 @@ class TestAnnotations(unittest.TestCase):          self.assertTrue(os.path.exists(ANNOTATIONS_FILE))          annoxml = None          with io.open(ANNOTATIONS_FILE, 'r', encoding='utf-8') as annof: -                annoxml = xml.etree.ElementTree.parse(annof) +            annoxml = xml.etree.ElementTree.parse(annof)          self.assertTrue(annoxml is not None, 'Failed to parse annotations XML')          root = annoxml.getroot()          self.assertEqual(root.tag, 'document') @@ -59,18 +58,17 @@ class TestAnnotations(unittest.TestCase):          self.assertEqual(annotationsTag.tag, 'annotations')          annotations = annotationsTag.findall('annotation') -        #Not all the annotations have TEXT children and the annotations are returned unsorted. +        # Not all the annotations have TEXT children and the annotations are returned unsorted.          for a in annotations: -                self.assertEqual(a.tag, 'annotation') -                if a.get('type') == 'text': -                        textTag = a.find('TEXT') -                        text = textTag.text -                        self.assertTrue(text in expected) #assertIn only added in python 2.7 -                        #remove the first occurance, there could be more than one annotation with the same text -                        expected.remove(text) -        #We should have seen (and removed) all the expected annotation texts. +            self.assertEqual(a.tag, 'annotation') +            if a.get('type') == 'text': +                textTag = a.find('TEXT') +                text = textTag.text +                self.assertTrue(text in expected)  # assertIn only added in python 2.7 +                # remove the first occurance, there could be more than one annotation with the same text +                expected.remove(text) +        # We should have seen (and removed) all the expected annotation texts.          self.assertEqual(len(expected), 0, 'Not all expected annotations were found.') -              def tearDown(self):          try_rm(ANNOTATIONS_FILE) diff --git a/test/test_youtube_lists.py b/test/test_youtube_lists.py index 410f9edc2..4ceba64ae 100644 --- a/test/test_youtube_lists.py +++ b/test/test_youtube_lists.py @@ -12,10 +12,6 @@ from test.helper import FakeYDL  from youtube_dl.extractor import (      YoutubePlaylistIE,      YoutubeIE, -    YoutubeChannelIE, -    YoutubeShowIE, -    YoutubeTopListIE, -    YoutubeSearchURLIE,  ) @@ -31,7 +27,7 @@ class TestYoutubeLists(unittest.TestCase):          result = ie.extract('https://www.youtube.com/watch?v=FXxLjLQi3Fg&list=PLwiyx1dc3P2JR9N8gQaQN_BCvlSlap7re')          self.assertEqual(result['_type'], 'url')          self.assertEqual(YoutubeIE().extract_id(result['url']), 'FXxLjLQi3Fg') -     +      def test_youtube_course(self):          dl = FakeYDL()          ie = YoutubePlaylistIE(dl) | 
