Merge remote-tracking branch 'hojel/slutload'
[youtube-dl] / test / helper.py
index 09873aea33c3815dcd56e8acf992156dbbb5974e..230d2bd67ab06b4db552bff30c5620f83673ca93 100644 (file)
@@ -85,7 +85,7 @@ def gettestcases(include_onlymatching=False):
         else:
             tests = getattr(ie, '_TESTS', [])
         for t in tests:
-            if not include_onlymatching and getattr(t, 'only_matching', False):
+            if not include_onlymatching and t.get('only_matching', False):
                 continue
             t['name'] = type(ie).__name__[:-len('IE')]
             yield t
@@ -107,7 +107,7 @@ def expect_info_dict(self, expected_dict, got_dict):
         elif isinstance(expected, type):
             got = got_dict.get(info_field)
             self.assertTrue(isinstance(got, expected),
-                u'Expected type %r, but got value %r of type %r' % (expected, got, type(got)))
+                u'Expected type %r for field %s, but got value %r of type %r' % (expected, info_field, got, type(got)))
         else:
             if isinstance(expected, compat_str) and expected.startswith('md5:'):
                 got = 'md5:' + md5(got_dict.get(info_field))
@@ -134,3 +134,17 @@ def expect_info_dict(self, expected_dict, got_dict):
             missing_keys,
             'Missing keys in test definition: %s' % (
                 ', '.join(sorted(missing_keys))))
+
+
+def assertRegexpMatches(self, text, regexp, msg=None):
+    if hasattr(self, 'assertRegexpMatches'):
+        return self.assertRegexpMatches(text, regexp, msg)
+    else:
+        m = re.match(regexp, text)
+        if not m:
+            note = 'Regexp didn\'t match: %r not found in %r' % (regexp, text)
+            if msg is None:
+                msg = note
+            else:
+                msg = note + ', ' + msg
+            self.assertTrue(m, msg)