[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…
	
	Add table
		Add a link
		
	
		Reference in a new issue