[issue14634] Mock cannot autospec functions with keyword-only arguments.

R. David Murray report at bugs.python.org
Fri Apr 20 20:08:04 CEST 2012


New submission from R. David Murray <rdmurray at bitdance.com>:

The following code:

  def foo(a, *, b=None):
    pass

  unittest.mock.create_autospec(foo)

fails with this traceback:

    Traceback (most recent call last):
      File "temp.py", line 6, in <module>
        unittest.mock.create_autospec(foo)
      File "/home/rdmurray/python/p33/Lib/unittest/mock.py", line 2026, in create_autospec
        mock = _set_signature(mock, spec)
      File "/home/rdmurray/python/p33/Lib/unittest/mock.py", line 162, in _set_signature
        result = _getsignature(original, skipfirst, instance)
      File "/home/rdmurray/python/p33/Lib/unittest/mock.py", line 81, in _getsignature
        regargs, varargs, varkwargs, defaults = inspect.getargspec(func)
      File "/home/rdmurray/python/p33/Lib/inspect.py", line 808, in getargspec
        raise ValueError("Function has keyword-only arguments or annotations"
    ValueError: Function has keyword-only arguments or annotations, use getfullargspec() API which can support them

----------
keywords: easy
messages: 158864
nosy: michael.foord, r.david.murray
priority: normal
severity: normal
status: open
title: Mock cannot autospec functions with keyword-only arguments.
type: enhancement
versions: Python 3.3

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue14634>
_______________________________________


More information about the Python-bugs-list mailing list