|
|
@ -242,6 +242,7 @@ class TestFormatSelection(unittest.TestCase): |
|
|
|
def test_format_selection_string_ops(self): |
|
|
|
formats = [ |
|
|
|
{'format_id': 'abc-cba', 'ext': 'mp4', 'url': TEST_URL}, |
|
|
|
{'format_id': 'zxc-cxz', 'ext': 'webm', 'url': TEST_URL}, |
|
|
|
] |
|
|
|
info_dict = _make_result(formats) |
|
|
|
|
|
|
@ -253,6 +254,11 @@ class TestFormatSelection(unittest.TestCase): |
|
|
|
|
|
|
|
# does not equal (!=) |
|
|
|
ydl = YDL({'format': '[format_id!=abc-cba]'}) |
|
|
|
ydl.process_ie_result(info_dict.copy()) |
|
|
|
downloaded = ydl.downloaded_info_dicts[0] |
|
|
|
self.assertEqual(downloaded['format_id'], 'zxc-cxz') |
|
|
|
|
|
|
|
ydl = YDL({'format': '[format_id!=abc-cba][format_id!=zxc-cxz]'}) |
|
|
|
self.assertRaises(ExtractorError, ydl.process_ie_result, info_dict.copy()) |
|
|
|
|
|
|
|
# starts with (^=) |
|
|
@ -262,7 +268,12 @@ class TestFormatSelection(unittest.TestCase): |
|
|
|
self.assertEqual(downloaded['format_id'], 'abc-cba') |
|
|
|
|
|
|
|
# does not start with (!^=) |
|
|
|
ydl = YDL({'format': '[format_id!^=abc-cba]'}) |
|
|
|
ydl = YDL({'format': '[format_id!^=abc]'}) |
|
|
|
ydl.process_ie_result(info_dict.copy()) |
|
|
|
downloaded = ydl.downloaded_info_dicts[0] |
|
|
|
self.assertEqual(downloaded['format_id'], 'zxc-cxz') |
|
|
|
|
|
|
|
ydl = YDL({'format': '[format_id!^=abc][format_id!^=zxc]'}) |
|
|
|
self.assertRaises(ExtractorError, ydl.process_ie_result, info_dict.copy()) |
|
|
|
|
|
|
|
# ends with ($=) |
|
|
@ -272,16 +283,29 @@ class TestFormatSelection(unittest.TestCase): |
|
|
|
self.assertEqual(downloaded['format_id'], 'abc-cba') |
|
|
|
|
|
|
|
# does not end with (!$=) |
|
|
|
ydl = YDL({'format': '[format_id!$=abc-cba]'}) |
|
|
|
ydl = YDL({'format': '[format_id!$=cba]'}) |
|
|
|
ydl.process_ie_result(info_dict.copy()) |
|
|
|
downloaded = ydl.downloaded_info_dicts[0] |
|
|
|
self.assertEqual(downloaded['format_id'], 'zxc-cxz') |
|
|
|
|
|
|
|
ydl = YDL({'format': '[format_id!$=cba][format_id!$=cxz]'}) |
|
|
|
self.assertRaises(ExtractorError, ydl.process_ie_result, info_dict.copy()) |
|
|
|
|
|
|
|
# contains (*=) |
|
|
|
ydl = YDL({'format': '[format_id*=-]'}) |
|
|
|
ydl = YDL({'format': '[format_id*=bc-cb]'}) |
|
|
|
ydl.process_ie_result(info_dict.copy()) |
|
|
|
downloaded = ydl.downloaded_info_dicts[0] |
|
|
|
self.assertEqual(downloaded['format_id'], 'abc-cba') |
|
|
|
|
|
|
|
# does not contain (!*=) |
|
|
|
ydl = YDL({'format': '[format_id!*=bc-cb]'}) |
|
|
|
ydl.process_ie_result(info_dict.copy()) |
|
|
|
downloaded = ydl.downloaded_info_dicts[0] |
|
|
|
self.assertEqual(downloaded['format_id'], 'zxc-cxz') |
|
|
|
|
|
|
|
ydl = YDL({'format': '[format_id!*=abc][format_id!*=zxc]'}) |
|
|
|
self.assertRaises(ExtractorError, ydl.process_ie_result, info_dict.copy()) |
|
|
|
|
|
|
|
ydl = YDL({'format': '[format_id!*=-]'}) |
|
|
|
self.assertRaises(ExtractorError, ydl.process_ie_result, info_dict.copy()) |
|
|
|
|
|
|
|