def test_built(self): c = checker.Checker('<filename>', 0, lambda: None, (), {}) f = self.f() f = f.include('b') f = f.include('a') self.assertEqual(f(c, self.d), mkD('a', 'b')) self.assertEqual(len(c.failed_checks), 0)
def test_no_calls(self): c = checker.Checker('<filename>', 0, lambda: None, (), {}) def body(_): pass body(c) self.assertEqual(len(c.failed_checks), 0)
def test_success_call(self): c = checker.Checker('<filename>', 0, lambda: None, (), {}) def body(check): check(True is True) body(c) self.assertEqual(len(c.failed_checks), 0)
def test_built_extra_includes(self): f = self.f('a', 'b', 'x') c = checker.Checker('<filename>', 0, f, (), {}) self.assertEqual(f(c, self.d), mkD('a', 'b')) self.assertEqual(len(c.failed_checks), 1) self.assertEqual(c.failed_checks[0].frames[-1].code, 'check((len(unused_includes) == 0))') self.assertEqual(c.failed_checks[0].frames[-1].varmap, {'unused_includes': "{'x': ()}"})
def test_simple_fail(self): c = checker.Checker('<filename>', 0, lambda: None, (), {}) def body(check): check(True is False) body(c) self.assertEqual(len(c.failed_checks), 1) self.assertEqual(len(c.failed_checks[0].frames), 1) self.assertEqual(self.sanitize(c.failed_checks[0].frames[0]), self.mk('body', 'check((True is False))', {}))
def test_built_fields(self): c = checker.Checker('<filename>', 0, lambda: None, (), {}) f = self.f() f = f.include('b', ['sub_b']) f = f.include('a', ['sub_a']) self.assertEqual( f(c, self.d), OrderedDict([ ('a', mkS('a', 'sub_a')), ('b', mkS('b', 'sub_b')), ])) self.assertEqual(len(c.failed_checks), 0)
def test_var_fail(self): c = checker.Checker('<filename>', 0, lambda: None, (), {}) def body(check): val = True check(val is False) body(c) self.assertEqual(len(c.failed_checks), 1) self.assertEqual(len(c.failed_checks[0].frames), 1) self.assertEqual( self.sanitize(c.failed_checks[0].frames[0]), self.mk('body', 'check((val is False))', {'val': 'True'}))
def test_re_high_limit(self): f = self.f().include_re('b\.', at_most=1) c = checker.Checker('<filename>', 0, f, (), {}) self.assertEqual(f(c, self.d), mkD('b.sub', 'b.sub2')) self.assertEqual(len(c.failed_checks), 1) self.assertEqual(c.failed_checks[0].frames[-1].code, 'check((re_usage_count[regex] <= at_most))') self.assertEqual( c.failed_checks[0].frames[-1].varmap, { 'at_most': '1', 're_usage_count[regex]': '2', 'regex': "re.compile('b\\\\.')" })
def test_dict_lookup(self): c = checker.Checker('<filename>', 0, lambda: None, (), {}) def body(check): targ = {'a': {'sub': 'b'}, 'c': 'd'} check('cow' in targ['a']) body(c) self.assertEqual(len(c.failed_checks), 1) self.assertEqual(len(c.failed_checks[0].frames), 1) self.assertEqual( self.sanitize(c.failed_checks[0].frames[0]), self.mk('body', "check(('cow' in targ['a']))", {"targ['a'].keys()": "['sub']"}))
def test_dict_membership(self): c = checker.Checker('<filename>', 0, lambda: None, (), {}) def body(check): targ = {'a': 'b', 'c': 'd'} check('a' not in targ) body(c) self.assertEqual(len(c.failed_checks), 1) self.assertEqual(len(c.failed_checks[0].frames), 1) self.assertEqual( self.sanitize(c.failed_checks[0].frames[0]), self.mk('body', "check(('a' not in targ))", {'targ.keys()': "['a', 'c']"}))
def test_simple_fail_multiline_multistatement(self): c = checker.Checker('<filename>', 0, lambda: None, (), {}) def body(check): other = 'thing' falsey = lambda: False check(True is falsey()) other # pylint: disable=pointless-statement body(c) self.assertEqual(len(c.failed_checks), 1) self.assertEqual(len(c.failed_checks[0].frames), 1) self.assertEqual( self.sanitize(c.failed_checks[0].frames[0]), self.mk('body', 'check((True is falsey())); other', {'other': "'thing'"}))
def test_dict_lookup_nest(self): c = checker.Checker('<filename>', 0, lambda: None, (), {}) def body(check): sub = 'sub' targ = {'a': {'sub': 'whee'}, 'c': 'd'} check('me' == targ['a'][sub]) body(c) self.assertEqual(len(c.failed_checks), 1) self.assertEqual(len(c.failed_checks[0].frames), 1) self.assertEqual( self.sanitize(c.failed_checks[0].frames[0]), self.mk('body', "check(('me' == targ['a'][sub]))", { "targ['a'][sub]": "'whee'", 'sub': "'sub'" }))
def test_lambda_call(self): c = checker.Checker('<filename>', 0, lambda: None, (), {}) def body(check): vals = ['whee', 'sub'] targ = {'a': {'sub': 'whee'}, 'c': 'd'} map(lambda v: check(v in targ['a']), vals) body(c) self.assertEqual(len(c.failed_checks), 1) self.assertEqual(len(c.failed_checks[0].frames), 2) self.assertEqual( self.sanitize(c.failed_checks[0].frames[0]), self.mk('body', "map((lambda v: check((v in targ['a']))), vals)", None)) self.assertEqual( self.sanitize(c.failed_checks[0].frames[1]), self.mk('<lambda>', "map((lambda v: check((v in targ['a']))), vals)", { "targ['a'].keys()": "['sub']", 'v': "'whee'" }))
def test_fail_nested_statement(self): c = checker.Checker('<filename>', 0, lambda: None, (), {}) def body(check): other = 'thing' falsey = lambda: False if True: while True: try: check(True is falsey()) other # pylint: disable=pointless-statement break except Exception: pass body(c) self.assertEqual(len(c.failed_checks), 1) self.assertEqual(len(c.failed_checks[0].frames), 1) self.assertEqual( self.sanitize(c.failed_checks[0].frames[0]), self.mk('body', 'check((True is falsey())); other', {'other': "'thing'"}))
def test_re(self): f = self.f().include_re('b\.') c = checker.Checker('<filename>', 0, f, (), {}) self.assertEqual(f(c, self.d), mkD('b.sub', 'b.sub2')) self.assertEqual(len(c.failed_checks), 0)
def expect_fails(self, num_fails, func, *args, **kwargs): c = checker.Checker('<filename>', 0, func, args, kwargs) func(c, self.d, *args, **kwargs) self.assertEqual(len(c.failed_checks), num_fails)
def test_basic(self): c = checker.Checker('<filename>', 0, lambda: None, (), {}) self.assertEqual(self.f('a', 'b')(c, self.d), mkD('a', 'b')) self.assertEqual(len(c.failed_checks), 0)