Comment simuler un appel asynchrone d'une coroutine native vers une autre en utilisant unittest.mock.patch
?Appel simulé d'un appel asynchrone en python 3.5
J'ai actuellement tout à fait une solution maladroite:
class CoroutineMock(MagicMock):
def __await__(self, *args, **kwargs):
future = Future()
future.set_result(self)
result = yield from future
return result
Puis
class TestCoroutines(TestCase):
@patch('some.path', new_callable=CoroutineMock)
def test(self, mock):
some_action()
mock.assert_called_with(1,2,3)
Cela fonctionne, mais semble laid. Y a-t-il une façon plus pythonique de faire ça?
cette maquette ne fonctionne pas non plus avec asyncio.await en raison de asyncio.tasks.ensure_future – Zozz