diff options
| -rw-r--r-- | test/test_YoutubeDL.py | 30 | ||||
| -rwxr-xr-x | youtube_dl/YoutubeDL.py | 2 | 
2 files changed, 28 insertions, 4 deletions
| diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py index df8994b84..1d7452744 100644 --- a/test/test_YoutubeDL.py +++ b/test/test_YoutubeDL.py @@ -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()) diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index a827414dc..80ed8d7e5 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -1078,7 +1078,7 @@ class YoutubeDL(object):                  comparison_value = m.group('value')                  str_op = STR_OPERATORS[m.group('op')]                  if m.group('negation'): -                    op = lambda attr, value: not str_op +                    op = lambda attr, value: not str_op(attr, value)                  else:                      op = str_op | 
