def go(): err = OSError(1, "permission error") req = mock.Mock() req_factory = mock.Mock(return_value=req) req.send = mock.Mock(side_effect=err) session = ClientSession(loop=self.loop, request_class=req_factory) @asyncio.coroutine def create_connection(req): # return self.transport, self.protocol return mock.Mock(), mock.Mock() session._connector._create_connection = create_connection with self.assertRaises(aiohttp.ClientOSError) as ctx: yield from session.request('get', 'http://example.com') e = ctx.exception self.assertEqual(e.errno, err.errno) self.assertEqual(e.strerror, err.strerror)
async def fetch(self, request: Request, session: ClientSession): if self.use_proxy: # method, url, *, # params = None, # data = None, # json = None, # headers = None, # skip_auto_headers = None, # auth = None, # allow_redirects = True, # max_redirects = 10, # compress = None, # chunked = None, pass try: biu = session.request(request.method, request.url, headers=request.header, data=request.body) async with biu as req: text = await req.text() return Response(request, text, req.status) except Exception: pass
def go(): session = ClientSession(loop=self.loop) session.close() with self.assertRaises(RuntimeError): yield from session.request('get', '/')