title: Mocking async call in python 3.5
body: <p>How do I mock async call from one native coroutine to other one using <code>unittest.mock.patch</code>?</p>
  
  <p>I currently have quite an awkward solution:</p>
  
  <pre><code>class CoroutineMock(MagicMock):
      def __await__(self, *args, **kwargs):
          future = Future()
          future.set_result(self)
          result = yield from future
          return result
  </code></pre>
  
  <p>Then </p>
  
  <pre><code>class TestCoroutines(TestCase):
      @patch('some.path', new_callable=CoroutineMock)
      def test(self, mock):
          some_action()
          mock.assert_called_with(1,2,3)
  </code></pre>
  
  <p>This works but looks ugly. Is there more pythonic way to do this?</p>