Ignore decorators

This commit is contained in:
epenet
2025-06-02 07:03:43 +00:00
parent 47638ab869
commit c8d95bdfd9

View File

@@ -27,14 +27,24 @@ class HassLoadFixturesChecker(BaseChecker):
}
options = ()
_decorators_queue: list[nodes.Decorators]
_function_queue: list[nodes.FunctionDef | nodes.AsyncFunctionDef]
_in_test_module: bool
def visit_module(self, node: nodes.Module) -> None:
"""Visit a module definition."""
self._in_test_module = node.name.startswith("tests.")
self._decorators_queue = []
self._function_queue = []
def visit_decorators(self, node: nodes.Decorators) -> None:
"""Visit a function definition."""
self._decorators_queue.append(node)
def leave_decorators(self, node: nodes.Decorators) -> None:
"""Leave a function definition."""
self._decorators_queue.pop()
def visit_functiondef(self, node: nodes.FunctionDef) -> None:
"""Visit a function definition."""
self._function_queue.append(node)
@@ -54,6 +64,8 @@ class HassLoadFixturesChecker(BaseChecker):
# Ensure we are in an async function context
or not self._function_queue
or not isinstance(self._function_queue[-1], nodes.AsyncFunctionDef)
# Ensure we are not in the decorators
or self._decorators_queue
# Check function name
or not isinstance(node.func, nodes.Name)
or node.func.name not in FUNCTION_NAMES