def _MakeRequest(self, method, request, response_class): """Executes a request to the Google API server. Args: method: The method to invoke. request: The request protocol buffer from sql_pb2. response_class: The response protocol buffer class from sql_pb2. Returns: A protocol buffer instance of the given response_class type. """ pb_model = model.ProtocolBufferModel(response_class) query_params = {} if self._developer_key: query_params['key'] = self._developer_key headers, unused_params, query, body = pb_model.request({}, {}, query_params, request) request = http.HttpRequest(self._transport, pb_model.response, self._api_url + method + query, method='POST', body=body, headers=headers) return request.execute()
def builder(http_transport, postproc, uri, method='GET', body=None, headers=None, methodId=None, resumable=None): """Builds an HttpRequest, adding headers and response inspection.""" additional_headers = headers_supplier() if additional_headers: headers = headers.copy() if headers else {} headers.update(additional_headers) request = http.HttpRequest( http_transport, postproc, uri, method=method, body=body, headers=headers, methodId=methodId, resumable=resumable) if response_inspector: request.add_response_callback(response_inspector) return request
def test_non_get_error(self): m = model.JsonModel() request = http.HttpRequest( None, m.response, 'https://www.googleapis.com/someapi/v1/collection/?foo=bar', method='POST', body='{}', headers={'content-type': 'application/json'}) c = push.Channel('my_channel', {}) self.assertRaises(push.InvalidSubscriptionRequestError, push.Subscription.for_request, request, c)
def test_request_is_post(self): m = model.JsonModel() request = http.HttpRequest( None, m.response, 'https://www.googleapis.com/someapi/v1/collection/?foo=bar', method='GET', body='{}', headers={'content-type': 'application/json'}) c = push.Channel('my_channel', {}) push.Subscription.for_request(request, c) self.assertEqual('POST', request.method)
def test_do_subscribe(self): m = model.JsonModel() request = http.HttpRequest( None, m.response, 'https://www.googleapis.com/someapi/v1/collection/?foo=bar', method='GET', body='{}', headers={'content-type': 'application/json'}) h = http.HttpMockSequence([({ 'status': 200, 'X-Goog-Subscription-ID': 'my_subscription' }, '{}')]) c = push.Channel('my_channel', {}) s = push.Subscription.for_request(request, c) request.execute(http=h) self.assertEqual('my_subscription', s.subscription_id)
def request_builder(*args, **kwargs): request = apiclient_http.HttpRequest(*args, **kwargs) request.headers['X-Goog-User-Project'] = project_id return request
def build_request(old_http, *args, **kwargs): new_http = credentials.authorize(httplib2.Http()) return http.HttpRequest(new_http, *args, **kwargs)