async def test_handle_voice(): handler = RequestHandler() request = Mock() mock_telnyx = Mock() mock_telnyx.voice_2fa = CoroutineMock(return_value=True) request.app = {'telnyx': mock_telnyx} request.query = {'to': '+15055551212', 'token': '22'} request.headers = {'X-API-Key': 'foo'} mock_web = Mock() mock_web.HTTPUnauthorized = aiohttp.web_exceptions.HTTPUnauthorized mock_web.HTTPBadRequest = aiohttp.web_exceptions.HTTPBadRequest mock_web.HTTPServerError = aiohttp.web_exceptions.HTTPServerError mock_response = Mock() mock_response.prepare = CoroutineMock() mock_response.write = CoroutineMock() mock_response.write_eof = CoroutineMock() mock_web.StreamResponse.return_value = mock_response with patch('telnyx_2fa.app.web', mock_web): r = await handler.handle_voice(request) writes = mock_response.write.call_args_list assert json.loads(writes[0][0][0])['status'] == 'waiting' assert json.loads(writes[1][0][0])['status'] == 'success'