We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
setdefault
1 parent c92f8a6 commit 01b8b88Copy full SHA for 01b8b88
src/pytest_bdd/utils.py
@@ -7,7 +7,7 @@
7
import re
8
from inspect import getframeinfo, signature
9
from sys import _getframe
10
-from typing import TYPE_CHECKING, TypeVar
+from typing import TYPE_CHECKING, TypeVar, cast
11
12
if TYPE_CHECKING:
13
from typing import Any, Callable
@@ -78,8 +78,8 @@ def collect_dumped_objects(result: RunResult) -> list:
78
79
def setdefault(obj: object, name: str, default: T) -> T:
80
"""Just like dict.setdefault, but for objects."""
81
- if hasattr(obj, name):
82
- return getattr(obj, name) # type: ignore
83
- else:
+ try:
+ return cast(T, getattr(obj, name))
+ except AttributeError:
84
setattr(obj, name, default)
85
return default
0 commit comments