如何使用
unittest.mock.patch
模拟从一个本地程序到另一个程序的异步调用?
我目前有一个相当尴尬的解决方案。
class CoroutineMock(MagicMock):
def __await__(self, *args, **kwargs):
future = Future()
future.set_result(self)
result = yield from future
return result
class TestCoroutines(TestCase):
@patch('some.path', new_callable=CoroutineMock)
def test(self, mock):
some_action()
mock.assert_called_with(1,2,3)
这样做可以,但看起来很丑。是否有更多的pythonic方法来做这个?