def test_send(self): """ Test the good case. We should end up with a task wrapping an appropriate call to aiohttp.request. """ contact = PeerNode(PUBLIC_KEY, self.version, 'http://192.168.0.1:80') msg = OK('uuid', 'recipient', 'sender', 9999, 'version', 'seal') msg_json = json.dumps(to_dict(msg)) headers = {'content-type': 'application/json'} connector = HttpConnector(self.event_loop) @asyncio.coroutine def faux_request(*args, **kwargs): return 'foo' with mock.patch.object(aiohttp, 'request', return_value=faux_request()) as request: result = connector.send(contact, msg) self.assertIsInstance(result, asyncio.Task) request.assert_called_once_with('post', contact.uri, data=msg_json, headers=headers)