Skip to content

Commit fe2febf

Browse files
authored
Merge pull request #7019 from bluetech/rm-pyobj_property
Remove pyobj_property helper, inline it instead
2 parents 9bf2885 + 694fdc6 commit fe2febf

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

src/_pytest/python.py

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -57,18 +57,6 @@
5757
from _pytest.warning_types import PytestUnhandledCoroutineWarning
5858

5959

60-
def pyobj_property(name):
61-
def get(self):
62-
node = self.getparent(getattr(__import__("pytest"), name))
63-
if node is not None:
64-
return node.obj
65-
66-
doc = "python {} object this node was collected from (can be None).".format(
67-
name.lower()
68-
)
69-
return property(get, None, None, doc)
70-
71-
7260
def pytest_addoption(parser):
7361
group = parser.getgroup("general")
7462
group.addoption(
@@ -248,11 +236,26 @@ def pytest_pycollect_makeitem(collector, name, obj):
248236

249237

250238
class PyobjMixin:
251-
module = pyobj_property("Module")
252-
cls = pyobj_property("Class")
253-
instance = pyobj_property("Instance")
254239
_ALLOW_MARKERS = True
255240

241+
@property
242+
def module(self):
243+
"""Python module object this node was collected from (can be None)."""
244+
node = self.getparent(Module)
245+
return node.obj if node is not None else None
246+
247+
@property
248+
def cls(self):
249+
"""Python class object this node was collected from (can be None)."""
250+
node = self.getparent(Class)
251+
return node.obj if node is not None else None
252+
253+
@property
254+
def instance(self):
255+
"""Python instance object this node was collected from (can be None)."""
256+
node = self.getparent(Instance)
257+
return node.obj if node is not None else None
258+
256259
@property
257260
def obj(self):
258261
"""Underlying Python object."""

0 commit comments

Comments
 (0)