Do the change

This commit is contained in:
Sadra Barikbin 2023-08-04 23:53:12 +03:30
parent e403bbf1a9
commit e700e667e6
2 changed files with 8 additions and 8 deletions

View File

@ -682,9 +682,12 @@ class TopRequest(FixtureRequest):
def _fillfixtures(self) -> None: def _fillfixtures(self) -> None:
item = self._pyfuncitem item = self._pyfuncitem
for argname in item.fixturenames: fixturenames = getattr(item, "fixturenames", self.fixturenames)
if argname not in item.funcargs: initialnames = item._fixtureinfo.initialnames
item.funcargs[argname] = self.getfixturevalue(argname) for argname in fixturenames:
value = self.getfixturevalue(argname)
if argname not in item.funcargs and argname in initialnames:
item.funcargs[argname] = value
def addfinalizer(self, finalizer: Callable[[], object]) -> None: def addfinalizer(self, finalizer: Callable[[], object]) -> None:
self.node.addfinalizer(finalizer) self.node.addfinalizer(finalizer)

View File

@ -9,7 +9,6 @@ from _pytest.config import ExitCode
from _pytest.fixtures import deduplicate_names from _pytest.fixtures import deduplicate_names
from _pytest.fixtures import TopRequest from _pytest.fixtures import TopRequest
from _pytest.monkeypatch import MonkeyPatch from _pytest.monkeypatch import MonkeyPatch
from _pytest.pytester import get_public_names
from _pytest.pytester import Pytester from _pytest.pytester import Pytester
from _pytest.python import Function from _pytest.python import Function
@ -128,8 +127,7 @@ class TestFillFixtures:
assert isinstance(item, Function) assert isinstance(item, Function)
# Execute's item's setup, which fills fixtures. # Execute's item's setup, which fills fixtures.
item.session._setupstate.setup(item) item.session._setupstate.setup(item)
del item.funcargs["request"] assert len(item.funcargs) == 2
assert len(get_public_names(item.funcargs)) == 2
assert item.funcargs["some"] == "test_func" assert item.funcargs["some"] == "test_func"
assert item.funcargs["other"] == 42 assert item.funcargs["other"] == 42
@ -841,8 +839,7 @@ class TestRequestBasic:
val2 = req.getfixturevalue("other") # see about caching val2 = req.getfixturevalue("other") # see about caching
assert val2 == 2 assert val2 == 2
assert item.funcargs["something"] == 1 assert item.funcargs["something"] == 1
assert len(get_public_names(item.funcargs)) == 2 assert len(item.funcargs) == 1
assert "request" in item.funcargs
def test_request_addfinalizer(self, pytester: Pytester) -> None: def test_request_addfinalizer(self, pytester: Pytester) -> None:
item = pytester.getitem( item = pytester.getitem(