简体   繁体   English

如何让 mock.assert_called_once() 接受 object 的任何实例?

[英]How can mock.assert_called_once() be told to accept any instance of an object?

I have some code which is calling Mock assert_called_one_with() .我有一些代码正在调用 Mock assert_called_one_with()

  import mock
  with mock.patch.object(myfile.Sheet,  'WriteData', autospec=True) as mock_sheets:
    somefile.ExportToSheets(query, 'api_key', 'sheet_id', 'A1')
    mock_sheets.assert_called_once_with(myfile.Sheet(), 'A1', [('a', 'b'), (1, 2)])

As you can see, everything compares equally except for the object instance.如您所见,除 object 实例外,所有内容都进行了同等比较。

AssertionError: Expected call: \
WriteData(<myfile.Sheet object at 0x7f9d487923c8>, 'A1', [('a', 'b'), ('1', '2')])
Actual call: \
WriteData(<myfile.Sheet object at 0x7f9d47bafb38>, 'A1', [('a', 'b'), ('1', '2')])

How can I either我怎么能

  • tell assert_called_once_with() to ignore object identity, or告诉 assert_called_once_with() 忽略 object 身份,或者
  • perform a similar assertion?执行类似的断言?

mock.ANY will match any value mock.ANY 将匹配任何值

mock_sheets.assert_called_once_with(mock.ANY, 'A1', [('a', 'b'), (1, 2)])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM