diff options
| author | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2013-07-14 17:24:18 +0200 | 
|---|---|---|
| committer | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2013-10-11 16:34:49 +0200 | 
| commit | e028d0d1e3ffed0a323b41431dbbfc804aa9553e (patch) | |
| tree | 641ff81735b48dbbcf6b713e9edc2f4083cd141d /test/test_YoutubeDL.py | |
| parent | 79819f58f2328cdb08272c55d01965cd8c6624ba (diff) | |
Implement the prefer_free_formats in YoutubeDL
Diffstat (limited to 'test/test_YoutubeDL.py')
| -rw-r--r-- | test/test_YoutubeDL.py | 49 | 
1 files changed, 49 insertions, 0 deletions
| diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py new file mode 100644 index 000000000..2b9fb92ee --- /dev/null +++ b/test/test_YoutubeDL.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python + +import sys +import unittest + +# Allow direct execution +import os +sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + +from helper import FakeYDL, parameters + +class YDL(FakeYDL): +    def __init__(self): +        super(YDL, self).__init__() +        self.downloaded_info_dicts = [] +    def process_info(self, info_dict): +        self.downloaded_info_dicts.append(info_dict) + +class TestFormatSelection(unittest.TestCase): +    def test_prefer_free_formats(self): +        # Same resolution => download webm +        ydl = YDL() +        ydl.params['prefer_free_formats'] = True +        formats = [{u'ext': u'webm', u'height': 460},{u'ext': u'mp4',  u'height': 460}] +        info_dict = {u'formats': formats, u'extractor': u'test'} +        ydl.process_ie_result(info_dict) +        downloaded = ydl.downloaded_info_dicts[0] +        self.assertEqual(downloaded[u'ext'], u'webm') + +        # Different resolution => download best quality (mp4) +        ydl = YDL() +        ydl.params['prefer_free_formats'] = True +        formats = [{u'ext': u'webm', u'height': 720},{u'ext': u'mp4',u'height': 1080}] +        info_dict[u'formats'] = formats +        ydl.process_ie_result(info_dict) +        downloaded = ydl.downloaded_info_dicts[0] +        self.assertEqual(downloaded[u'ext'], u'mp4') + +        # No prefer_free_formats => keep original formats order +        ydl = YDL() +        ydl.params['prefer_free_formats'] = False +        formats = [{u'ext': u'webm', u'height': 720},{u'ext': u'flv',u'height': 720}] +        info_dict[u'formats'] = formats +        ydl.process_ie_result(info_dict) +        downloaded = ydl.downloaded_info_dicts[0] +        self.assertEqual(downloaded[u'ext'], u'flv') + +if __name__ == '__main__': +    unittest.main() | 
