예제 #1
0
 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)
예제 #2
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)
예제 #3
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)
예제 #4
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': ()}"})
예제 #5
0
    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))', {}))
예제 #6
0
 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)
예제 #7
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'}))
예제 #8
0
 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\\\\.')"
         })
예제 #9
0
    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']"}))
예제 #10
0
    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']"}))
예제 #11
0
    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'"}))
예제 #12
0
    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'"
            }))
예제 #13
0
    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'"
                    }))
예제 #14
0
    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'"}))
예제 #15
0
 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)
예제 #16
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)
예제 #17
0
 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)