From: Berker Peksag <berker.peksag@gmail.com> Date: Thu, 15 Dec 2016 02:21:44 +0000 (+0300) Subject: Issue #28919: Simplify _copy_func_details() in unittest.mock X-Git-Tag: v3.7.0a1~1753 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=161a4dd495dbf5cb12364e8f6e2d113cfd0633fc;p=python Issue #28919: Simplify _copy_func_details() in unittest.mock Patch by Jiajun Huang. --- diff --git a/Lib/unittest/mock.py b/Lib/unittest/mock.py index f134919888..367c1e19ce 100644 --- a/Lib/unittest/mock.py +++ b/Lib/unittest/mock.py @@ -104,26 +104,16 @@ def _check_signature(func, mock, skipfirst, instance=False): def _copy_func_details(func, funcopy): - funcopy.__name__ = func.__name__ - funcopy.__doc__ = func.__doc__ - try: - funcopy.__text_signature__ = func.__text_signature__ - except AttributeError: - pass # we explicitly don't copy func.__dict__ into this copy as it would # expose original attributes that should be mocked - try: - funcopy.__module__ = func.__module__ - except AttributeError: - pass - try: - funcopy.__defaults__ = func.__defaults__ - except AttributeError: - pass - try: - funcopy.__kwdefaults__ = func.__kwdefaults__ - except AttributeError: - pass + for attribute in ( + '__name__', '__doc__', '__text_signature__', + '__module__', '__defaults__', '__kwdefaults__', + ): + try: + setattr(funcopy, attribute, getattr(func, attribute)) + except AttributeError: + pass def _callable(obj):