diff options
| author | Sergey M․ <dstftw@gmail.com> | 2019-01-16 02:17:49 +0700 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2019-01-16 02:17:49 +0700 | 
| commit | a16c7c033a161f310b69d444edc9dbf67cfc49ff (patch) | |
| tree | b28d96a65f49c06b5c1a481868b972406f97fee3 /test | |
| parent | 2f483bc1c389709623117079439708783122b5ec (diff) | |
[test/helper] Add support for maxcount and count collection len test checkers
Diffstat (limited to 'test')
| -rw-r--r-- | test/helper.py | 34 | 
1 files changed, 30 insertions, 4 deletions
diff --git a/test/helper.py b/test/helper.py index aa9a1c9b2..e62aab11e 100644 --- a/test/helper.py +++ b/test/helper.py @@ -153,15 +153,27 @@ def expect_value(self, got, expected, field):                  isinstance(got, compat_str),                  'Expected field %s to be a unicode object, but got value %r of type %r' % (field, got, type(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(                  isinstance(got, (list, dict)),                  'Expected field %s to be a list or a dict, but it is of type %s' % (                      field, type(got).__name__)) -            expected_num = int(expected.partition(':')[2]) -            assertGreaterEqual( +            op, _, expected_num = expected.partition(':') +            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, -                'Expected %d items in field %s, but only got %d' % (expected_num, field, len(got))) +                msg_tmpl % (expected_num, field, len(got)))              return          self.assertEqual(              expected, got, @@ -237,6 +249,20 @@ def assertGreaterEqual(self, got, expected, msg=None):          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):      real_warning = ydl.report_warning  | 
