]>
Raphaƫl G. Git Repositories - youtubedl/blob - test/test_YoutubeDL.py
   3 # Allow direct execution 
   7 sys
.path
.insert(0, os
.path
.dirname(os
.path
.dirname(os
.path
.abspath(__file__
)))) 
   9 from test
.helper 
import FakeYDL
 
  13     def __init__(self
, *args
, **kwargs
): 
  14         super(YDL
, self
).__init
__(*args
, **kwargs
) 
  15         self
.downloaded_info_dicts 
= [] 
  18     def process_info(self
, info_dict
): 
  19         self
.downloaded_info_dicts
.append(info_dict
) 
  21     def to_screen(self
, msg
): 
  25 class TestFormatSelection(unittest
.TestCase
): 
  26     def test_prefer_free_formats(self
): 
  27         # Same resolution => download webm 
  29         ydl
.params
['prefer_free_formats'] = True 
  31             {u
'ext': u
'webm', u
'height': 460}, 
  32             {u
'ext': u
'mp4',  u
'height': 460}, 
  34         info_dict 
= {u
'formats': formats
, u
'extractor': u
'test'} 
  35         ydl
.process_ie_result(info_dict
) 
  36         downloaded 
= ydl
.downloaded_info_dicts
[0] 
  37         self
.assertEqual(downloaded
[u
'ext'], u
'webm') 
  39         # Different resolution => download best quality (mp4) 
  41         ydl
.params
['prefer_free_formats'] = True 
  43             {u
'ext': u
'webm', u
'height': 720}, 
  44             {u
'ext': u
'mp4', u
'height': 1080}, 
  46         info_dict
[u
'formats'] = formats
 
  47         ydl
.process_ie_result(info_dict
) 
  48         downloaded 
= ydl
.downloaded_info_dicts
[0] 
  49         self
.assertEqual(downloaded
[u
'ext'], u
'mp4') 
  51         # No prefer_free_formats => keep original formats order 
  53         ydl
.params
['prefer_free_formats'] = False 
  55             {u
'ext': u
'webm', u
'height': 720}, 
  56             {u
'ext': u
'flv', u
'height': 720}, 
  58         info_dict
[u
'formats'] = formats
 
  59         ydl
.process_ie_result(info_dict
) 
  60         downloaded 
= ydl
.downloaded_info_dicts
[0] 
  61         self
.assertEqual(downloaded
[u
'ext'], u
'flv') 
  63     def test_format_limit(self
): 
  65             {u
'format_id': u
'meh', u
'url': u
'http://example.com/meh'}, 
  66             {u
'format_id': u
'good', u
'url': u
'http://example.com/good'}, 
  67             {u
'format_id': u
'great', u
'url': u
'http://example.com/great'}, 
  68             {u
'format_id': u
'excellent', u
'url': u
'http://example.com/exc'}, 
  71             u
'formats': formats
, u
'extractor': u
'test', 'id': 'testvid'} 
  74         ydl
.process_ie_result(info_dict
) 
  75         downloaded 
= ydl
.downloaded_info_dicts
[0] 
  76         self
.assertEqual(downloaded
[u
'format_id'], u
'excellent') 
  78         ydl 
= YDL({'format_limit': 'good'}) 
  79         assert ydl
.params
['format_limit'] == 'good' 
  80         ydl
.process_ie_result(info_dict
) 
  81         downloaded 
= ydl
.downloaded_info_dicts
[0] 
  82         self
.assertEqual(downloaded
[u
'format_id'], u
'good') 
  84         ydl 
= YDL({'format_limit': 'great', 'format': 'all'}) 
  85         ydl
.process_ie_result(info_dict
) 
  86         self
.assertEqual(ydl
.downloaded_info_dicts
[0][u
'format_id'], u
'meh') 
  87         self
.assertEqual(ydl
.downloaded_info_dicts
[1][u
'format_id'], u
'good') 
  88         self
.assertEqual(ydl
.downloaded_info_dicts
[2][u
'format_id'], u
'great') 
  89         self
.assertTrue('3' in ydl
.msgs
[0]) 
  92         ydl
.params
['format_limit'] = 'excellent' 
  93         ydl
.process_ie_result(info_dict
) 
  94         downloaded 
= ydl
.downloaded_info_dicts
[0] 
  95         self
.assertEqual(downloaded
[u
'format_id'], u
'excellent') 
  97     def test_format_selection(self
): 
  99             {u
'format_id': u
'35', u
'ext': u
'mp4'}, 
 100             {u
'format_id': u
'45', u
'ext': u
'webm'}, 
 101             {u
'format_id': u
'47', u
'ext': u
'webm'}, 
 102             {u
'format_id': u
'2', u
'ext': u
'flv'}, 
 104         info_dict 
= {u
'formats': formats
, u
'extractor': u
'test'} 
 106         ydl 
= YDL({'format': u
'20/47'}) 
 107         ydl
.process_ie_result(info_dict
) 
 108         downloaded 
= ydl
.downloaded_info_dicts
[0] 
 109         self
.assertEqual(downloaded
['format_id'], u
'47') 
 111         ydl 
= YDL({'format': u
'20/71/worst'}) 
 112         ydl
.process_ie_result(info_dict
) 
 113         downloaded 
= ydl
.downloaded_info_dicts
[0] 
 114         self
.assertEqual(downloaded
['format_id'], u
'35') 
 117         ydl
.process_ie_result(info_dict
) 
 118         downloaded 
= ydl
.downloaded_info_dicts
[0] 
 119         self
.assertEqual(downloaded
['format_id'], u
'2') 
 121         ydl 
= YDL({'format': u
'webm/mp4'}) 
 122         ydl
.process_ie_result(info_dict
) 
 123         downloaded 
= ydl
.downloaded_info_dicts
[0] 
 124         self
.assertEqual(downloaded
['format_id'], u
'47') 
 126         ydl 
= YDL({'format': u
'3gp/40/mp4'}) 
 127         ydl
.process_ie_result(info_dict
) 
 128         downloaded 
= ydl
.downloaded_info_dicts
[0] 
 129         self
.assertEqual(downloaded
['format_id'], u
'35') 
 131     def test_add_extra_info(self
): 
 137             'playlist': 'funny videos', 
 139         YDL
.add_extra_info(test_dict
, extra_info
) 
 140         self
.assertEqual(test_dict
['extractor'], 'Foo') 
 141         self
.assertEqual(test_dict
['playlist'], 'funny videos') 
 144 if __name__ 
== '__main__':