mirror of
https://github.com/python/cpython.git
synced 2025-10-14 18:59:46 +00:00
Closes issue 14636. mock objects raise exceptions from an iterable side_effect
This commit is contained in:
parent
24117a748b
commit
2cd48738ba
4 changed files with 31 additions and 53 deletions
|
@ -891,7 +891,10 @@ class CallableMixin(Base):
|
|||
raise effect
|
||||
|
||||
if not _callable(effect):
|
||||
return next(effect)
|
||||
result = next(effect)
|
||||
if _is_exception(result):
|
||||
raise result
|
||||
return result
|
||||
|
||||
ret_val = effect(*args, **kwargs)
|
||||
if ret_val is DEFAULT:
|
||||
|
@ -931,8 +934,9 @@ class Mock(CallableMixin, NonCallableMock):
|
|||
arguments as the mock, and unless it returns `DEFAULT`, the return
|
||||
value of this function is used as the return value.
|
||||
|
||||
Alternatively `side_effect` can be an exception class or instance. In
|
||||
this case the exception will be raised when the mock is called.
|
||||
If `side_effect` is an iterable then each call to the mock will return
|
||||
the next value from the iterable. If any of the members of the iterable
|
||||
are exceptions they will be raised instead of returned.
|
||||
|
||||
If `side_effect` is an iterable then each call to the mock will return
|
||||
the next value from the iterable.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue