Skip to content

Commit d6becfa

Browse files
committed
fixtures: change _getautousenames to an iterator
This reads better.
1 parent aa0e2d6 commit d6becfa

File tree

2 files changed

+5
-7
lines changed

2 files changed

+5
-7
lines changed

src/_pytest/fixtures.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1476,14 +1476,12 @@ def pytest_plugin_registered(self, plugin: _PluggyPlugin) -> None:
14761476

14771477
self.parsefactories(plugin, nodeid)
14781478

1479-
def _getautousenames(self, nodeid: str) -> List[str]:
1480-
"""Return a list of fixture names to be used."""
1479+
def _getautousenames(self, nodeid: str) -> Iterator[str]:
1480+
"""Return the names of autouse fixtures applicable to nodeid."""
14811481
parentnodeids = set(nodes.iterparentnodeids(nodeid))
1482-
autousenames: List[str] = []
14831482
for baseid, basenames in self._nodeid_and_autousenames:
14841483
if baseid in parentnodeids:
1485-
autousenames.extend(basenames)
1486-
return autousenames
1484+
yield from basenames
14871485

14881486
def getfixtureclosure(
14891487
self,
@@ -1499,7 +1497,7 @@ def getfixtureclosure(
14991497
# (discovering matching fixtures for a given name/node is expensive).
15001498

15011499
parentid = parentnode.nodeid
1502-
fixturenames_closure = self._getautousenames(parentid)
1500+
fixturenames_closure = list(self._getautousenames(parentid))
15031501

15041502
def merge(otherlist: Iterable[str]) -> None:
15051503
for arg in otherlist:

testing/python/fixtures.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1710,7 +1710,7 @@ def test_parsefactories_conftest(self, testdir):
17101710
"""
17111711
from _pytest.pytester import get_public_names
17121712
def test_check_setup(item, fm):
1713-
autousenames = fm._getautousenames(item.nodeid)
1713+
autousenames = list(fm._getautousenames(item.nodeid))
17141714
assert len(get_public_names(autousenames)) == 2
17151715
assert "perfunction2" in autousenames
17161716
assert "perfunction" in autousenames

0 commit comments

Comments
 (0)