[New-bugs-announce] [issue25000] _mock_call does not properly grab args and kwargs

Alex Etling report at bugs.python.org
Fri Sep 4 14:25:41 CEST 2015


New submission from Alex Etling:

Consider the following lines of code:

def test_mock(val):
    fake_mock = Mock()
    a = {}  
    fake_mock.func(a)
    a['val'] = 5
    fake_mock.func.assert_has_calls([call({})])
What i would expect would be for this statement to pass. What I actually see is the following:

Traceback (most recent call last):
File "/gc/gclib/python/tests/kafka_production/encoding_test.py", line 121, in test_mock
fake_mock.func.assert_has_calls([call({})])
File "/usr/local/lib/python2.7/dist-packages/mock.py", line 863, in assert_has_calls
'Actual: %r' % (calls, self.mock_calls)
AssertionError: Calls not found.
Expected: [call({})]
Actual: [call({'val': 5})]
Mock thinks that I have passed in {'val': 5}, when I in fact did pass in {}. The errors seems to be the way args and kwargs are being grabbed in _mock_call function

----------
components: Macintosh
messages: 249757
nosy: ned.deily, paetling, ronaldoussoren
priority: normal
severity: normal
status: open
title: _mock_call does not properly grab args and kwargs
type: behavior
versions: Python 2.7, Python 3.2, Python 3.3, Python 3.4, Python 3.5, Python 3.6

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


More information about the New-bugs-announce mailing list