Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Add alias clarification to deprecation warning (#7829)
Co-authored-by: Bruno Oliveira <nicoddemus@gmail.com>
- Loading branch information
|
|
@@ -0,0 +1 @@ |
|
|
Improve deprecation warning message for ``pytest._fillfuncargs()``. |
|
|
@@ -20,9 +20,10 @@ |
|
|
} |
|
|
|
|
|
|
|
|
FILLFUNCARGS = PytestDeprecationWarning( |
|
|
"The `_fillfuncargs` function is deprecated, use " |
|
|
"function._request._fillfixtures() instead if you cannot avoid reaching into internals." |
|
|
FILLFUNCARGS = UnformattedWarning( |
|
|
PytestDeprecationWarning, |
|
|
"{name} is deprecated, use " |
|
|
"function._request._fillfixtures() instead if you cannot avoid reaching into internals.", |
|
|
) |
|
|
|
|
|
PYTEST_COLLECT_MODULE = UnformattedWarning( |
|
|
|
|
|
@@ -339,9 +339,22 @@ def reorder_items_atscope( |
|
|
return items_done |
|
|
|
|
|
|
|
|
def _fillfuncargs(function: "Function") -> None: |
|
|
"""Fill missing fixtures for a test function, old public API (deprecated).""" |
|
|
warnings.warn(FILLFUNCARGS.format(name="pytest._fillfuncargs()"), stacklevel=2) |
|
|
_fill_fixtures_impl(function) |
|
|
|
|
|
|
|
|
def fillfixtures(function: "Function") -> None: |
|
|
"""Fill missing funcargs for a test function.""" |
|
|
warnings.warn(FILLFUNCARGS, stacklevel=2) |
|
|
"""Fill missing fixtures for a test function (deprecated).""" |
|
|
warnings.warn( |
|
|
FILLFUNCARGS.format(name="_pytest.fixtures.fillfixtures()"), stacklevel=2 |
|
|
) |
|
|
_fill_fixtures_impl(function) |
|
|
|
|
|
|
|
|
def _fill_fixtures_impl(function: "Function") -> None: |
|
|
"""Internal implementation to fill fixtures on the given function object.""" |
|
|
try: |
|
|
request = function._request |
|
|
except AttributeError: |
|
|
|
|
|
@@ -11,7 +11,7 @@ |
|
|
from _pytest.config import main |
|
|
from _pytest.config import UsageError |
|
|
from _pytest.debugging import pytestPDB as __pytestPDB |
|
|
from _pytest.fixtures import fillfixtures as _fillfuncargs |
|
|
from _pytest.fixtures import _fillfuncargs |
|
|
from _pytest.fixtures import fixture |
|
|
from _pytest.fixtures import FixtureLookupError |
|
|
from _pytest.fixtures import yield_fixture |
|
|
|
|
|
@@ -1,3 +1,4 @@ |
|
|
import re |
|
|
import warnings |
|
|
from unittest import mock |
|
|
|
|
|
@@ -26,11 +27,27 @@ def test_external_plugins_integrated(testdir, plugin): |
|
|
def test_fillfuncargs_is_deprecated() -> None: |
|
|
with pytest.warns( |
|
|
pytest.PytestDeprecationWarning, |
|
|
match="The `_fillfuncargs` function is deprecated", |
|
|
match=re.escape( |
|
|
"pytest._fillfuncargs() is deprecated, use " |
|
|
"function._request._fillfixtures() instead if you cannot avoid reaching into internals." |
|
|
), |
|
|
): |
|
|
pytest._fillfuncargs(mock.Mock()) |
|
|
|
|
|
|
|
|
def test_fillfixtures_is_deprecated() -> None: |
|
|
import _pytest.fixtures |
|
|
|
|
|
with pytest.warns( |
|
|
pytest.PytestDeprecationWarning, |
|
|
match=re.escape( |
|
|
"_pytest.fixtures.fillfixtures() is deprecated, use " |
|
|
"function._request._fillfixtures() instead if you cannot avoid reaching into internals." |
|
|
), |
|
|
): |
|
|
_pytest.fixtures.fillfixtures(mock.Mock()) |
|
|
|
|
|
|
|
|
def test_minus_k_dash_is_deprecated(testdir) -> None: |
|
|
threepass = testdir.makepyfile( |
|
|
test_threepass=""" |
|
|
|
|
|
@@ -87,7 +87,7 @@ class T: |
|
|
class TestFillFixtures: |
|
|
def test_fillfuncargs_exposed(self): |
|
|
# used by oejskit, kept for compatibility |
|
|
assert pytest._fillfuncargs == fixtures.fillfixtures |
|
|
assert pytest._fillfuncargs == fixtures._fillfuncargs |
|
|
|
|
|
def test_funcarg_lookupfails(self, testdir): |
|
|
testdir.copy_example() |
|
|
|