def create_aiohttp_session_mock( response_mocks: typing.Iterable[AiohttpResponseMock], loop: asyncio.AbstractEventLoop = None) -> ClientSession: async def _request(method, url, *args, **kwargs): for response in response_mocks: if response.match_request(method, url): return response assert False, f'No response mock for {method} {url}' session = ClientSession(loop=loop) session._request = _request return session
async def request(self, method, url, params=None, headers=None, timeout=10, loop=None, **aio_kwargs): """Make a request to provider.""" oparams = { 'oauth_consumer_key': self.consumer_key, 'oauth_nonce': sha1(str(random()).encode('ascii')).hexdigest(), 'oauth_signature_method': self.signature.name, 'oauth_timestamp': str(int(time.time())), 'oauth_version': self.version, } oparams.update(params or {}) request_params = self.request_params.copy() request_params.update(aio_kwargs) if self.oauth_token: oparams['oauth_token'] = self.oauth_token url = self._get_url(url) if urlsplit(url).query: raise ValueError('Request parameters should be in the "params"' 'parameter, not inlined in the URL') oparams['oauth_signature'] = self.signature.sign( self.consumer_secret, method, url, oauth_token_secret=self.oauth_token_secret, **oparams) self.logger.debug("%s %s", url, oparams) session = ClientSession(conn_timeout=0, read_timeout=0) return _SessionRequestContextManager( session._request(method, url, params=oparams, headers=headers, **request_params), session)
def create_session(self, loop): """Create a ClientSession that is bound to this mocker.""" session = ClientSession(loop=loop) session._request = self.match_request return session
def create_session(self, loop): """Create a ClientSession that is bound to this mocker.""" session = ClientSession(loop=loop) session._request = self.match_request return session