Inline the FuncargnamesCompatAttr compat helper
It doesn't help much IMO, just adds indirection and makes it harder to type.
This commit is contained in:
parent
5bfe793fd5
commit
e3ac44df36
|
@ -361,21 +361,6 @@ class CaptureIO(io.TextIOWrapper):
|
||||||
return self.buffer.getvalue().decode("UTF-8")
|
return self.buffer.getvalue().decode("UTF-8")
|
||||||
|
|
||||||
|
|
||||||
class FuncargnamesCompatAttr:
|
|
||||||
""" helper class so that Metafunc, Function and FixtureRequest
|
|
||||||
don't need to each define the "funcargnames" compatibility attribute.
|
|
||||||
"""
|
|
||||||
|
|
||||||
@property
|
|
||||||
def funcargnames(self):
|
|
||||||
""" alias attribute for ``fixturenames`` for pre-2.3 compatibility"""
|
|
||||||
import warnings
|
|
||||||
from _pytest.deprecated import FUNCARGNAMES
|
|
||||||
|
|
||||||
warnings.warn(FUNCARGNAMES, stacklevel=2)
|
|
||||||
return self.fixturenames
|
|
||||||
|
|
||||||
|
|
||||||
if sys.version_info < (3, 5, 2): # pragma: no cover
|
if sys.version_info < (3, 5, 2): # pragma: no cover
|
||||||
|
|
||||||
def overload(f): # noqa: F811
|
def overload(f): # noqa: F811
|
||||||
|
|
|
@ -18,7 +18,6 @@ from _pytest._code.code import FormattedExcinfo
|
||||||
from _pytest._code.code import TerminalRepr
|
from _pytest._code.code import TerminalRepr
|
||||||
from _pytest.compat import _format_args
|
from _pytest.compat import _format_args
|
||||||
from _pytest.compat import _PytestWrapper
|
from _pytest.compat import _PytestWrapper
|
||||||
from _pytest.compat import FuncargnamesCompatAttr
|
|
||||||
from _pytest.compat import get_real_func
|
from _pytest.compat import get_real_func
|
||||||
from _pytest.compat import get_real_method
|
from _pytest.compat import get_real_method
|
||||||
from _pytest.compat import getfslineno
|
from _pytest.compat import getfslineno
|
||||||
|
@ -29,6 +28,7 @@ from _pytest.compat import is_generator
|
||||||
from _pytest.compat import NOTSET
|
from _pytest.compat import NOTSET
|
||||||
from _pytest.compat import safe_getattr
|
from _pytest.compat import safe_getattr
|
||||||
from _pytest.deprecated import FIXTURE_POSITIONAL_ARGUMENTS
|
from _pytest.deprecated import FIXTURE_POSITIONAL_ARGUMENTS
|
||||||
|
from _pytest.deprecated import FUNCARGNAMES
|
||||||
from _pytest.outcomes import fail
|
from _pytest.outcomes import fail
|
||||||
from _pytest.outcomes import TEST_OUTCOME
|
from _pytest.outcomes import TEST_OUTCOME
|
||||||
|
|
||||||
|
@ -336,7 +336,7 @@ class FuncFixtureInfo:
|
||||||
self.names_closure[:] = sorted(closure, key=self.names_closure.index)
|
self.names_closure[:] = sorted(closure, key=self.names_closure.index)
|
||||||
|
|
||||||
|
|
||||||
class FixtureRequest(FuncargnamesCompatAttr):
|
class FixtureRequest:
|
||||||
""" A request for a fixture from a test or fixture function.
|
""" A request for a fixture from a test or fixture function.
|
||||||
|
|
||||||
A request object gives access to the requesting test context
|
A request object gives access to the requesting test context
|
||||||
|
@ -363,6 +363,12 @@ class FixtureRequest(FuncargnamesCompatAttr):
|
||||||
result.extend(set(self._fixture_defs).difference(result))
|
result.extend(set(self._fixture_defs).difference(result))
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
@property
|
||||||
|
def funcargnames(self):
|
||||||
|
""" alias attribute for ``fixturenames`` for pre-2.3 compatibility"""
|
||||||
|
warnings.warn(FUNCARGNAMES, stacklevel=2)
|
||||||
|
return self.fixturenames
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def node(self):
|
def node(self):
|
||||||
""" underlying collection node (depends on current request scope)"""
|
""" underlying collection node (depends on current request scope)"""
|
||||||
|
|
|
@ -31,6 +31,7 @@ from _pytest.compat import safe_getattr
|
||||||
from _pytest.compat import safe_isclass
|
from _pytest.compat import safe_isclass
|
||||||
from _pytest.compat import STRING_TYPES
|
from _pytest.compat import STRING_TYPES
|
||||||
from _pytest.config import hookimpl
|
from _pytest.config import hookimpl
|
||||||
|
from _pytest.deprecated import FUNCARGNAMES
|
||||||
from _pytest.main import FSHookProxy
|
from _pytest.main import FSHookProxy
|
||||||
from _pytest.mark import MARK_GEN
|
from _pytest.mark import MARK_GEN
|
||||||
from _pytest.mark.structures import get_unpacked_marks
|
from _pytest.mark.structures import get_unpacked_marks
|
||||||
|
@ -882,7 +883,7 @@ class CallSpec2:
|
||||||
self.marks.extend(normalize_mark_list(marks))
|
self.marks.extend(normalize_mark_list(marks))
|
||||||
|
|
||||||
|
|
||||||
class Metafunc(fixtures.FuncargnamesCompatAttr):
|
class Metafunc:
|
||||||
"""
|
"""
|
||||||
Metafunc objects are passed to the :func:`pytest_generate_tests <_pytest.hookspec.pytest_generate_tests>` hook.
|
Metafunc objects are passed to the :func:`pytest_generate_tests <_pytest.hookspec.pytest_generate_tests>` hook.
|
||||||
They help to inspect a test function and to generate tests according to
|
They help to inspect a test function and to generate tests according to
|
||||||
|
@ -916,6 +917,12 @@ class Metafunc(fixtures.FuncargnamesCompatAttr):
|
||||||
self._ids = set()
|
self._ids = set()
|
||||||
self._arg2fixturedefs = fixtureinfo.name2fixturedefs
|
self._arg2fixturedefs = fixtureinfo.name2fixturedefs
|
||||||
|
|
||||||
|
@property
|
||||||
|
def funcargnames(self):
|
||||||
|
""" alias attribute for ``fixturenames`` for pre-2.3 compatibility"""
|
||||||
|
warnings.warn(FUNCARGNAMES, stacklevel=2)
|
||||||
|
return self.fixturenames
|
||||||
|
|
||||||
def parametrize(self, argnames, argvalues, indirect=False, ids=None, scope=None):
|
def parametrize(self, argnames, argvalues, indirect=False, ids=None, scope=None):
|
||||||
""" Add new invocations to the underlying test function using the list
|
""" Add new invocations to the underlying test function using the list
|
||||||
of argvalues for the given argnames. Parametrization is performed
|
of argvalues for the given argnames. Parametrization is performed
|
||||||
|
@ -1333,7 +1340,7 @@ def write_docstring(tw, doc, indent=" "):
|
||||||
tw.write(indent + line + "\n")
|
tw.write(indent + line + "\n")
|
||||||
|
|
||||||
|
|
||||||
class Function(FunctionMixin, nodes.Item, fixtures.FuncargnamesCompatAttr):
|
class Function(FunctionMixin, nodes.Item):
|
||||||
""" a Function Item is responsible for setting up and executing a
|
""" a Function Item is responsible for setting up and executing a
|
||||||
Python test function.
|
Python test function.
|
||||||
"""
|
"""
|
||||||
|
@ -1420,6 +1427,12 @@ class Function(FunctionMixin, nodes.Item, fixtures.FuncargnamesCompatAttr):
|
||||||
"(compatonly) for code expecting pytest-2.2 style request objects"
|
"(compatonly) for code expecting pytest-2.2 style request objects"
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
@property
|
||||||
|
def funcargnames(self):
|
||||||
|
""" alias attribute for ``fixturenames`` for pre-2.3 compatibility"""
|
||||||
|
warnings.warn(FUNCARGNAMES, stacklevel=2)
|
||||||
|
return self.fixturenames
|
||||||
|
|
||||||
def runtest(self):
|
def runtest(self):
|
||||||
""" execute the underlying test function. """
|
""" execute the underlying test function. """
|
||||||
self.ihook.pytest_pyfunc_call(pyfuncitem=self)
|
self.ihook.pytest_pyfunc_call(pyfuncitem=self)
|
||||||
|
|
Loading…
Reference in New Issue