summaryrefslogtreecommitdiff
path: root/src/_pytest/fixtures.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/_pytest/fixtures.py')
-rw-r--r--src/_pytest/fixtures.py17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/_pytest/fixtures.py b/src/_pytest/fixtures.py
index 53f33d3e1..5bdee3096 100644
--- a/src/_pytest/fixtures.py
+++ b/src/_pytest/fixtures.py
@@ -16,6 +16,7 @@ from typing import Generic
from typing import Iterable
from typing import Iterator
from typing import List
+from typing import MutableMapping
from typing import Optional
from typing import overload
from typing import Sequence
@@ -525,9 +526,10 @@ class FixtureRequest:
return self._pyfuncitem.fspath # type: ignore
@property
- def keywords(self):
+ def keywords(self) -> MutableMapping[str, Any]:
"""Keywords/markers dictionary for the underlying node."""
- return self.node.keywords
+ node: nodes.Node = self.node
+ return node.keywords
@property
def session(self) -> "Session":
@@ -607,14 +609,11 @@ class FixtureRequest:
def _get_fixturestack(self) -> List["FixtureDef[Any]"]:
current = self
values: List[FixtureDef[Any]] = []
- while 1:
- fixturedef = getattr(current, "_fixturedef", None)
- if fixturedef is None:
- values.reverse()
- return values
- values.append(fixturedef)
- assert isinstance(current, SubRequest)
+ while isinstance(current, SubRequest):
+ values.append(current._fixturedef) # type: ignore[has-type]
current = current._parent_request
+ values.reverse()
+ return values
def _compute_fixture_value(self, fixturedef: "FixtureDef[object]") -> None:
"""Create a SubRequest based on "self" and call the execute method