Chris Withers <ch...@withers.org> added the comment:

Not sure this is correct, if an effect is an exception and requires args, then 
it should be passed as an instance, not a class:

Mock(side_effect=MyException(‘foo’))

> On 10 Nov 2019, at 04:49, Karthikeyan Singaravelan <rep...@bugs.python.org> 
> wrote:
> 
> 
> Karthikeyan Singaravelan <tir.kar...@gmail.com> added the comment:
> 
> Currently, the exception is not instantiated. Maybe we can check if it's 
> callable and pass args, kwargs to the exception constructor to be raised.
> 
> diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py
> index a48132c5b1..f5bcb911f5 100644
> --- a/Lib/unittest/mock.py
> +++ b/Lib/unittest/mock.py
> @@ -1145,7 +1145,10 @@ class CallableMixin(Base):
>         effect = self.side_effect
>         if effect is not None:
>             if _is_exception(effect):
> -                raise effect
> +                if _callable(effect):
> +                    raise effect(*args, **kwargs)
> +                else:
> +                    raise effect
>             elif not _callable(effect):
>                 result = next(effect)
>                 if _is_exception(result):
> 
> ----------
> nosy: +cjw296, lisroach, mariocj89, michael.foord
> 
> _______________________________________
> Python tracker <rep...@bugs.python.org>
> <https://bugs.python.org/issue38757>
> _______________________________________

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue38757>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to