Skip to content

Commit 46cf450

Browse files
author
Anis Da Silva Campos
committed
keep the fixture checker class attributes private
1 parent a181130 commit 46cf450

File tree

2 files changed

+26
-23
lines changed

2 files changed

+26
-23
lines changed

pylint_pytest/checkers/fixture.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -73,28 +73,28 @@ class FixtureChecker(BasePytestChecker):
7373
}
7474

7575
# Store all fixtures discovered by pytest session
76-
pytest_fixtures: FixtureDict = {}
76+
_pytest_fixtures: FixtureDict = {}
7777
# Stores all used function arguments
78-
invoked_with_func_args: set[str] = set()
78+
_invoked_with_func_args: set[str] = set()
7979
# Stores all invoked fixtures through @pytest.mark.usefixture(...)
80-
invoked_with_usefixtures: set[str] = set()
80+
_invoked_with_usefixtures: set[str] = set()
8181

8282
def close(self):
8383
"""restore & reset class attr for testing"""
8484
# reset fixture info storage
85-
FixtureChecker.pytest_fixtures = {}
86-
FixtureChecker.invoked_with_func_args = set()
87-
FixtureChecker.invoked_with_usefixtures = set()
85+
FixtureChecker._pytest_fixtures = {}
86+
FixtureChecker._invoked_with_func_args = set()
87+
FixtureChecker._invoked_with_usefixtures = set()
8888

8989
def visit_module(self, node):
9090
"""
9191
- only run once per module
9292
- invoke pytest session to collect available fixtures
9393
- create containers for the module to store args and fixtures
9494
"""
95-
FixtureChecker.pytest_fixtures = {}
96-
FixtureChecker.invoked_with_func_args = set()
97-
FixtureChecker.invoked_with_usefixtures = set()
95+
FixtureChecker._pytest_fixtures = {}
96+
FixtureChecker._invoked_with_func_args = set()
97+
FixtureChecker._invoked_with_usefixtures = set()
9898

9999
is_test_module = False
100100
for pattern in FILE_NAME_PATTERNS:
@@ -128,7 +128,7 @@ def visit_module(self, node):
128128
# restore sys.path
129129
sys.path = sys_path
130130

131-
FixtureChecker.pytest_fixtures = fixture_collector.fixtures
131+
FixtureChecker._pytest_fixtures = fixture_collector.fixtures
132132

133133
legitimate_failure_paths = set(
134134
collection_report.nodeid
@@ -212,11 +212,11 @@ def visit_functiondef(self, node):
212212
if _is_pytest_mark_usefixtures(decorator):
213213
# save all visited fixtures
214214
for arg in decorator.args:
215-
self.invoked_with_usefixtures.add(arg.value)
215+
self._invoked_with_usefixtures.add(arg.value)
216216
if int(pytest.__version__.split(".")[0]) >= 3 and _is_pytest_fixture(
217217
decorator, fixture=False
218218
):
219219
# raise deprecated warning for @pytest.yield_fixture
220220
self.add_message("deprecated-pytest-yield-fixture", node=node)
221221
for arg in node.args.args:
222-
self.invoked_with_func_args.add(arg.name)
222+
self._invoked_with_func_args.add(arg.name)

pylint_pytest/checkers/variables.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@
1313
class CustomVariablesChecker(VariablesChecker):
1414
"""Overrides the default VariablesChecker of pylint to discard unwanted warning messages"""
1515

16+
# pylint: disable=protected-access
17+
# this class needs to access the fixture checker registries
18+
1619
def add_message(
1720
self,
1821
msgid: str,
@@ -44,29 +47,29 @@ def add_message(
4447
node
4548
and isinstance(node.parent, Module)
4649
and node.parent.name.split(".")[-1] == "conftest"
47-
and fixture_name in FixtureChecker.pytest_fixtures
50+
and fixture_name in FixtureChecker._pytest_fixtures
4851
):
4952
return
5053

5154
# imported fixture is referenced in test/fixture func
5255
elif (
53-
fixture_name in FixtureChecker.invoked_with_func_args
54-
and fixture_name in FixtureChecker.pytest_fixtures
56+
fixture_name in FixtureChecker._invoked_with_func_args
57+
and fixture_name in FixtureChecker._pytest_fixtures
5558
):
5659
if _is_same_module(
57-
fixtures=FixtureChecker.pytest_fixtures,
60+
fixtures=FixtureChecker._pytest_fixtures,
5861
import_node=node,
5962
fixture_name=fixture_name,
6063
):
6164
return
6265

6366
# fixture is referenced in @pytest.mark.usefixtures
6467
elif (
65-
fixture_name in FixtureChecker.invoked_with_usefixtures
66-
and fixture_name in FixtureChecker.pytest_fixtures
68+
fixture_name in FixtureChecker._invoked_with_usefixtures
69+
and fixture_name in FixtureChecker._pytest_fixtures
6770
):
6871
if _is_same_module(
69-
fixtures=FixtureChecker.pytest_fixtures,
72+
fixtures=FixtureChecker._pytest_fixtures,
7073
import_node=node,
7174
fixture_name=fixture_name,
7275
):
@@ -79,15 +82,15 @@ def add_message(
7982
and _can_use_fixture(node.parent.parent)
8083
and isinstance(node.parent, Arguments)
8184
):
82-
if node.name in FixtureChecker.pytest_fixtures:
85+
if node.name in FixtureChecker._pytest_fixtures:
8386
# argument is used as a fixture
8487
return
8588

8689
fixnames = (
87-
arg.name for arg in node.parent.args if arg.name in FixtureChecker.pytest_fixtures
90+
arg.name for arg in node.parent.args if arg.name in FixtureChecker._pytest_fixtures
8891
)
8992
for fixname in fixnames:
90-
if node.name in FixtureChecker.pytest_fixtures[fixname][0].argnames:
93+
if node.name in FixtureChecker._pytest_fixtures[fixname][0].argnames:
9194
# argument is used by a fixture
9295
return
9396

@@ -97,7 +100,7 @@ def add_message(
97100
and node
98101
and _can_use_fixture(node.parent.parent)
99102
and isinstance(node.parent, Arguments)
100-
and node.name in FixtureChecker.pytest_fixtures
103+
and node.name in FixtureChecker._pytest_fixtures
101104
):
102105
return
103106

0 commit comments

Comments
 (0)