diff --git a/doc/en/reference.rst b/doc/en/reference.rst index 15d825084..ad02a3eca 100644 --- a/doc/en/reference.rst +++ b/doc/en/reference.rst @@ -816,6 +816,13 @@ Function :members: :show-inheritance: +FunctionDefinition +~~~~~~~~~~~~~~~~~~ + +.. autoclass:: _pytest.python.FunctionDefinition() + :members: + :show-inheritance: + Item ~~~~ diff --git a/src/_pytest/python.py b/src/_pytest/python.py index 7d3e301c0..44979c83d 100644 --- a/src/_pytest/python.py +++ b/src/_pytest/python.py @@ -943,6 +943,7 @@ class Metafunc: cls=None, module=None, ) -> None: + #: Access to the underlying :class:`_pytest.python.FunctionDefinition`. self.definition = definition #: Access to the :class:`_pytest.config.Config` object for the test session. @@ -1664,10 +1665,12 @@ class Function(PyobjMixin, nodes.Item): class FunctionDefinition(Function): - """Internal hack until we get actual definition nodes instead of the - crappy metafunc hack.""" + """ + This class is a step gap solution until we evolve to have actual function definition nodes + and manage to get rid of ``metafunc``. + """ def runtest(self) -> None: - raise RuntimeError("function definitions are not supposed to be used") + raise RuntimeError("function definitions are not supposed to be run as tests") setup = runtest