[TIP] Is this a bug in unittest.mock, or am I missing something?
James Cooke
me at jamescooke.info
Thu Feb 16 14:37:16 PST 2017
Hi John,
This is interesting and thanks for sharing it. Running python 3.5.2, I
firstly simplified your example and got a slightly different exception:
from unittest import mock
def test_calls_match():
"""
Calls on a Mock match expectation
"""
m = mock.Mock()
m()
m.my_method(123)
m.assert_has_calls([mock.call(), mock.call().my_method(123)])
The exception is slightly different for me:
E AssertionError: Calls not found.
E Expected: [call(), call().my_method(123)]
E Actual: [call(), call.my_method(123)]
When I remove the parentheses after the second `call`, then everything
works for me, and the test passes.
m.assert_has_calls([mock.call(), mock.call.my_method(123)])
My assumption is that MagicMock will operate like Mock and that your
MockFoo is a MagicMock, so could you try the `mock.call.my_method` on
Python 3.4?
I'm interested to hear how that works for you.
Cheers,
James
On Thu, 16 Feb 2017, at 07:06 PM, John W wrote:
> They seem to be the same types.
>
> I added these prints:
>
> print("type of call():", type(call()))
> print("type of call().my_method(123):",
> type(call().my_method(123)))
> for c in MockFoo.mock_calls:
> print("type of mock call '{}': {}".format(c, type(c)))
>
> And output is:
>
> type of call(): <class 'unittest.mock._Call'>
> type of call().my_method(123): <class 'unittest.mock._Call'>
> type of mock call 'call()': <class 'unittest.mock._Call'>
> type of mock call 'call().my_method(123)': <class
> 'unittest.mock._Call'>
>
>
> Thanks for the suggestion though.
> I've been getting crickets from every place I've asked this
> question (:
>
> -John
>
> _______________________________________________
> testing-in-python mailing list
> testing-in-python at lists.idyll.org
> http://lists.idyll.org/listinfo/testing-in-python
--
James Cooke
Backend software developer
CV PDF: http://jamescooke.info/docs/james_cooke_cv.pdf
Website: http://jamescooke.info/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.idyll.org/pipermail/testing-in-python/attachments/20170216/67b88699/attachment.htm>
More information about the testing-in-python
mailing list