예제 #1
0
 def walk(self, node):
     """recursive walk on the given node"""
     walker = ASTWalker(self.linter)
     if self.enable_plugin:
         walker.add_checker(self.checker)
     for checker in self.impacted_checkers:
         walker.add_checker(checker)
     walker.walk(node)
예제 #2
0
 def test_check_messages(self):
     linter = self.MockLinter(
         {"first-message": True, "second-message": False, "third-message": True}
     )
     walker = ASTWalker(linter)
     checker = self.Checker()
     walker.add_checker(checker)
     walker.walk(astroid.parse("x = func()"))
     assert {"module", "assignname"} == checker.called
예제 #3
0
 def test_only_required_for_messages(self) -> None:
     linter = self.MockLinter(
         {"first-message": True, "second-message": False, "third-message": True}
     )
     walker = ASTWalker(linter)  # type: ignore[arg-type]
     checker = self.Checker()
     walker.add_checker(checker)
     walker.walk(astroid.parse("x = func()"))
     assert {"module", "assignname"} == checker.called
예제 #4
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 = ASTWalker(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
예제 #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 = ASTWalker(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
예제 #6
0
    def test_deprecated_methods(self) -> None:
        class Checker(BaseChecker):
            # pylint: disable-next=super-init-not-called
            def __init__(self) -> None:
                self.called = False

            @only_required_for_messages("first-message")
            def visit_assname(self, node):  # pylint: disable=unused-argument
                self.called = True

        linter = self.MockLinter({"first-message": True})
        walker = ASTWalker(linter)  # type: ignore[arg-type]
        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
예제 #7
0
 def walk(self, node):
     """recursive walk on the given node"""
     walker = ASTWalker(linter)
     walker.add_checker(self.checker)
     walker.walk(node)