コード例 #1
0
ファイル: utils.py プロジェクト: gholcomb/buildly
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
コード例 #2
0
    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)
コード例 #3
0
 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
コード例 #4
0
ファイル: aiohttp.py プロジェクト: simpss/home-assistant
 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