[issue21478] mock calls don't propagate to parent (autospec)

Dmitry Andreychuk report at bugs.python.org
Mon May 12 14:56:34 CEST 2014


New submission from Dmitry Andreychuk:

Calls to autospecced mock functions are not recorded to mock_calls list of parent mock. This only happens if autospec is used and the original object is a function.

Example:

import unittest.mock as mock

def foo():
    pass

parent = mock.Mock()
parent.child = mock.create_autospec(foo)
parent.child()
print(parent.mock_calls)


Output:
[]

Expected output:
[call.child()]

It works fine if foo function is substituted with a class.

Initially I came across this problem with patch() and attach_mock() but I simplified it for the demonstration.

----------
components: Library (Lib)
messages: 218321
nosy: and
priority: normal
severity: normal
status: open
title: mock calls don't propagate to parent (autospec)
type: behavior
versions: Python 3.3, Python 3.4

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


More information about the Python-bugs-list mailing list