From 77fa3f8236a769bedbef0a965498e3760971ae8b Mon Sep 17 00:00:00 2001 From: Berker Peksag Date: Thu, 15 Dec 2016 05:21:44 +0300 Subject: Issue #28919: Simplify _copy_func_details() in unittest.mock Patch by Jiajun Huang. --- Lib/unittest/mock.py | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) (limited to 'Lib/unittest') 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): -- cgit v1.2.1