Skip to content

Commit 01b8b88

Browse files
committed
Fix typing for setdefault
1 parent c92f8a6 commit 01b8b88

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

src/pytest_bdd/utils.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import re
88
from inspect import getframeinfo, signature
99
from sys import _getframe
10-
from typing import TYPE_CHECKING, TypeVar
10+
from typing import TYPE_CHECKING, TypeVar, cast
1111

1212
if TYPE_CHECKING:
1313
from typing import Any, Callable
@@ -78,8 +78,8 @@ def collect_dumped_objects(result: RunResult) -> list:
7878

7979
def setdefault(obj: object, name: str, default: T) -> T:
8080
"""Just like dict.setdefault, but for objects."""
81-
if hasattr(obj, name):
82-
return getattr(obj, name) # type: ignore
83-
else:
81+
try:
82+
return cast(T, getattr(obj, name))
83+
except AttributeError:
8484
setattr(obj, name, default)
8585
return default

0 commit comments

Comments
 (0)