示例#1
0
 def test_check_messages(self):
     linter = self.MockLinter({
         'first-message': True,
         'second-message': False,
         'third-message': True
     })
     walker = utils.PyLintASTWalker(linter)
     checker = self.Checker()
     walker.add_checker(checker)
     walker.walk(astroid.parse("x = func()"))
     assert set(['module', 'assname']) == checker.called
示例#2
0
 def testCheckMessages(self):
     linter = self.MockLinter({
         'first-message': True,
         'second-message': False,
         'third-message': True
     })
     walker = utils.PyLintASTWalker(linter)
     checker = self.Checker()
     walker.add_checker(checker)
     walker.walk(test_utils.build_module("x = func()"))
     self.assertEqual(set(['module', 'assname']), checker.called)
示例#3
0
 def test_check_messages(self):
     linter = self.MockLinter({
         "first-message": True,
         "second-message": False,
         "third-message": True
     })
     walker = utils.PyLintASTWalker(linter)
     checker = self.Checker()
     walker.add_checker(checker)
     walker.walk(astroid.parse("x = func()"))
     assert {"module", "assignname"} == checker.called
示例#4
0
 def check(self, filename, file_content):
     # initialize msgs_state now that all messages have been registered into
     # the store
     for msg in self.msgs_store.messages:
         if not msg.may_be_emitted():
             self._msgs_state[msg.msgid] = False
     basename = (os.path.splitext(os.path.basename(filename))[0]
                 if filename else "untitled")
     walker = utils.PyLintASTWalker(self)
     self.config.reports = True
     _checkers = self.prepare_checkers()
     tokencheckers = [
         c for c in _checkers
         if interfaces.implements(c, interfaces.ITokenChecker)
         and c is not self
     ]
     rawcheckers = [
         c for c in _checkers
         if interfaces.implements(c, interfaces.IRawChecker)
     ]
     # notify global begin
     for checker in _checkers:
         checker.open()
         if interfaces.implements(checker,
                                  interfaces.IAstroidChecker):
             walker.add_checker(checker)
     self.set_current_module(basename, filename)
     ast_node = bd.string_build(file_content, filename,
                                basename)
     self.file_state = utils.FileState(basename)
     self._ignore_file = False
     # fix the current file (if the source file was not available or
     # if it's actually a c extension)
     self.current_file = ast_node.file  # pylint: disable=maybe-no-member
     self.check_astroid_module(ast_node, walker, rawcheckers,
                               tokencheckers)
     # warn about spurious inline messages handling
     spurious_messages = self.file_state.iter_spurious_suppression_messages(
         self.msgs_store)
     for msgid, line, args in spurious_messages:
         self.add_message(msgid, line, None, args)
     # notify global end
     self.stats["statement"] = walker.nbstatements
     for checker in reversed(_checkers):
         checker.close()
示例#5
0
    def test_deprecated_methods(self):
        class Checker(object):
            def __init__(self):
                self.called = False

            @check_messages("first-message")
            def visit_assname(self, node):
                self.called = True

        linter = self.MockLinter({"first-message": True})
        walker = utils.PyLintASTWalker(linter)
        checker = Checker()
        walker.add_checker(checker)
        with warnings.catch_warnings(record=True):
            warnings.simplefilter("always")
            walker.walk(astroid.parse("x = 1"))

            assert not checker.called
def _init_linter():
    global _linter
    global _walker
    global _token_checkers
    global _raw_checkers
    global _reporter
    _linter = lint.PyLinter(reporter=_reporter)
    _linter.load_default_plugins()
    _walker = utils.PyLintASTWalker(_linter)
    checkers = _linter.prepare_checkers()
    _token_checkers = [
        c for c in checkers
        if implements(c, ITokenChecker) and c is not _linter
    ]
    _raw_checkers = [c for c in checkers if implements(c, IRawChecker)]
    for checker in checkers:
        checker.open()
        if implements(checker, IAstroidChecker):
            _walker.add_checker(checker)