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
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)
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
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()
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)