[issue32153] mock.create_autospec fails if an attribute is a partial function
Karthikeyan Singaravelan
report at bugs.python.org
Wed Nov 7 14:36:17 EST 2018
Karthikeyan Singaravelan <tir.karthi at gmail.com> added the comment:
@berker.peksag I have created a unit test PR and verified that the test fails in 3.6 and passes on master.
# 3.6 branch
cpython git:(25bd107399) ./python.exe
Python 3.6.7+ (remotes/upstream/3.6:25bd107399, Nov 8 2018, 00:50:43)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D
cpython git:(25bd107399) ./python.exe -m unittest -v unittest.test.testmock.testhelpers.SpecSignatureTest.test_autospec_getattr_partial_function
test_autospec_getattr_partial_function (unittest.test.testmock.testhelpers.SpecSignatureTest) ... ERROR
======================================================================
ERROR: test_autospec_getattr_partial_function (unittest.test.testmock.testhelpers.SpecSignatureTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/unittest/test/testmock/testhelpers.py", line 884, in test_autospec_getattr_partial_function
autospec = create_autospec(proxy)
File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/unittest/mock.py", line 2182, in create_autospec
_check_signature(spec, mock, is_type, instance)
File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/unittest/mock.py", line 102, in _check_signature
_copy_func_details(func, checksig)
File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/unittest/mock.py", line 107, in _copy_func_details
funcopy.__name__ = func.__name__
AttributeError: 'functools.partial' object has no attribute '__name__'
----------------------------------------------------------------------
Ran 1 test in 0.007s
FAILED (errors=1)
# Master
cpython git:(bpo32153) ./python.exe
Python 3.8.0a0 (heads/bpo32153:3e9cd8d982, Nov 8 2018, 00:53:46)
[Clang 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D
cpython git:(bpo32153) ./python.exe -m unittest -v unittest.test.testmock.testhelpers.SpecSignatureTest.test_autospec_getattr_partial_function
test_autospec_getattr_partial_function (unittest.test.testmock.testhelpers.SpecSignatureTest) ... ok
----------------------------------------------------------------------
Ran 1 test in 0.005s
OK
----------
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue32153>
_______________________________________
More information about the Python-bugs-list
mailing list