[test/helper] Add support for maxcount and count collection len test checkers
This commit is contained in:
parent
2f483bc1c3
commit
a16c7c033a
1 changed files with 30 additions and 4 deletions
|
@ -153,15 +153,27 @@ def expect_value(self, got, expected, field):
|
||||||
isinstance(got, compat_str),
|
isinstance(got, compat_str),
|
||||||
'Expected field %s to be a unicode object, but got value %r of type %r' % (field, got, type(got)))
|
'Expected field %s to be a unicode object, but got value %r of type %r' % (field, got, type(got)))
|
||||||
got = 'md5:' + md5(got)
|
got = 'md5:' + md5(got)
|
||||||
elif isinstance(expected, compat_str) and expected.startswith('mincount:'):
|
elif isinstance(expected, compat_str) and re.match(r'^(?:min|max)?count:\d+', expected):
|
||||||
self.assertTrue(
|
self.assertTrue(
|
||||||
isinstance(got, (list, dict)),
|
isinstance(got, (list, dict)),
|
||||||
'Expected field %s to be a list or a dict, but it is of type %s' % (
|
'Expected field %s to be a list or a dict, but it is of type %s' % (
|
||||||
field, type(got).__name__))
|
field, type(got).__name__))
|
||||||
expected_num = int(expected.partition(':')[2])
|
op, _, expected_num = expected.partition(':')
|
||||||
assertGreaterEqual(
|
expected_num = int(expected_num)
|
||||||
|
if op == 'mincount':
|
||||||
|
assert_func = assertGreaterEqual
|
||||||
|
msg_tmpl = 'Expected %d items in field %s, but only got %d'
|
||||||
|
elif op == 'maxcount':
|
||||||
|
assert_func = assertLessEqual
|
||||||
|
msg_tmpl = 'Expected maximum %d items in field %s, but got %d'
|
||||||
|
elif op == 'count':
|
||||||
|
assert_func = assertEqual
|
||||||
|
msg_tmpl = 'Expected exactly %d items in field %s, but got %d'
|
||||||
|
else:
|
||||||
|
assert False
|
||||||
|
assert_func(
|
||||||
self, len(got), expected_num,
|
self, len(got), expected_num,
|
||||||
'Expected %d items in field %s, but only got %d' % (expected_num, field, len(got)))
|
msg_tmpl % (expected_num, field, len(got)))
|
||||||
return
|
return
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
expected, got,
|
expected, got,
|
||||||
|
@ -237,6 +249,20 @@ def assertGreaterEqual(self, got, expected, msg=None):
|
||||||
self.assertTrue(got >= expected, msg)
|
self.assertTrue(got >= expected, msg)
|
||||||
|
|
||||||
|
|
||||||
|
def assertLessEqual(self, got, expected, msg=None):
|
||||||
|
if not (got <= expected):
|
||||||
|
if msg is None:
|
||||||
|
msg = '%r not less than or equal to %r' % (got, expected)
|
||||||
|
self.assertTrue(got <= expected, msg)
|
||||||
|
|
||||||
|
|
||||||
|
def assertEqual(self, got, expected, msg=None):
|
||||||
|
if not (got == expected):
|
||||||
|
if msg is None:
|
||||||
|
msg = '%r not equal to %r' % (got, expected)
|
||||||
|
self.assertTrue(got == expected, msg)
|
||||||
|
|
||||||
|
|
||||||
def expect_warnings(ydl, warnings_re):
|
def expect_warnings(ydl, warnings_re):
|
||||||
real_warning = ydl.report_warning
|
real_warning = ydl.report_warning
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue