diff options
Diffstat (limited to 'test/test_YoutubeDL.py')
| -rw-r--r-- | test/test_YoutubeDL.py | 47 | 
1 files changed, 47 insertions, 0 deletions
| diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py index 0caa43843..73910eaec 100644 --- a/test/test_YoutubeDL.py +++ b/test/test_YoutubeDL.py @@ -14,6 +14,7 @@ from test.helper import FakeYDL, assertRegexpMatches  from youtube_dl import YoutubeDL  from youtube_dl.compat import compat_str, compat_urllib_error  from youtube_dl.extractor import YoutubeIE +from youtube_dl.extractor.common import InfoExtractor  from youtube_dl.postprocessor.common import PostProcessor  from youtube_dl.utils import ExtractorError, match_filter_func @@ -221,6 +222,16 @@ class TestFormatSelection(unittest.TestCase):          downloaded = ydl.downloaded_info_dicts[0]          self.assertEqual(downloaded['format_id'], 'dash-video-low') +        formats = [ +            {'format_id': 'vid-vcodec-dot', 'ext': 'mp4', 'preference': 1, 'vcodec': 'avc1.123456', 'acodec': 'none', 'url': TEST_URL}, +        ] +        info_dict = _make_result(formats) + +        ydl = YDL({'format': 'bestvideo[vcodec=avc1.123456]'}) +        ydl.process_ie_result(info_dict.copy()) +        downloaded = ydl.downloaded_info_dicts[0] +        self.assertEqual(downloaded['format_id'], 'vid-vcodec-dot') +      def test_youtube_format_selection(self):          order = [              '38', '37', '46', '22', '45', '35', '44', '18', '34', '43', '6', '5', '36', '17', '13', @@ -636,6 +647,42 @@ class TestYoutubeDL(unittest.TestCase):          ydl = YDL()          self.assertRaises(compat_urllib_error.URLError, ydl.urlopen, 'file:///etc/passwd') +    def test_do_not_override_ie_key_in_url_transparent(self): +        ydl = YDL() + +        class Foo1IE(InfoExtractor): +            _VALID_URL = r'foo1:' + +            def _real_extract(self, url): +                return { +                    '_type': 'url_transparent', +                    'url': 'foo2:', +                    'ie_key': 'Foo2', +                } + +        class Foo2IE(InfoExtractor): +            _VALID_URL = r'foo2:' + +            def _real_extract(self, url): +                return { +                    '_type': 'url', +                    'url': 'foo3:', +                    'ie_key': 'Foo3', +                } + +        class Foo3IE(InfoExtractor): +            _VALID_URL = r'foo3:' + +            def _real_extract(self, url): +                return _make_result([{'url': TEST_URL}]) + +        ydl.add_info_extractor(Foo1IE(ydl)) +        ydl.add_info_extractor(Foo2IE(ydl)) +        ydl.add_info_extractor(Foo3IE(ydl)) +        ydl.extract_info('foo1:') +        downloaded = ydl.downloaded_info_dicts[0] +        self.assertEqual(downloaded['url'], TEST_URL) +  if __name__ == '__main__':      unittest.main() | 
