所以,拥有unittest.mock和代码
with pysftp.Connection(host, username, password, port) as sftp:
sftp.get("filename")
......可以断言Connection.assert_called_with(host, username, password, port)
。
但是断言Connection.assert_called_with(host, username, password, port).get("filename")
失败了。
我如何断言?
答案 0 :(得分:1)
我假设您希望patch
pysftp.Connection
参考。
以下是您可以进行测试的示例:
>>> import pysftp
>>> from mock import *
>>> with patch("pysftp.Connection") as mock_connection:
... with pysftp.Connection("1.2.3.4", "user", "pwd", 12345) as sftp:
... sftp.get("filename")
... mock_connection.assert_called_with("1.2.3.4", "user", "pwd", 12345)
... sftp.get.assert_called_with("filename")
...
<MagicMock name='Connection().__enter__().get()' id='139907730030992'>
由于sftp
对象是MagicMock
,您可以直接使用它。正如您在日志中看到的sftp
与
mock_connection.return_value.__enter__.return_value
Connection
- &gt; mock_connection
()
- &gt; return_value