def test_get_response_nonstreaming_ok(self): http_response = Response() http_response.headers = { 'content-type': 'application/xml', 'date': 'Sun, 09 Mar 2014 02:55:43 GMT', 'server': 'AmazonS3', 'transfer-encoding': 'chunked', 'x-amz-id-2': 'AAAAAAAAAAAAAAAAAAA', 'x-amz-request-id': 'XXXXXXXXXXXXXXXX'} http_response.raw = six.BytesIO(XMLBODY1) http_response.status_code = 403 http_response.reason = 'Forbidden' http_response.request = Request() session = botocore.session.get_session() service_model = session.get_service_model('s3') operation_model = service_model.operation_model('ListObjects') self.assertEqual( response.get_response(operation_model, http_response)[1], { 'ResponseMetadata': {'RequestId': 'XXXXXXXXXXXXXXXX', 'HostId': 'AAAAAAAAAAAAAAAAAAA', 'HTTPStatusCode': 403}, 'Error': {'Message': 'Access Denied', 'Code': 'AccessDenied',} } )
def test_get_response_nonstreaming_ok(self): http_response = Response() http_response.headers = { 'content-type': 'application/xml', 'date': 'Sun, 09 Mar 2014 02:55:43 GMT', 'server': 'AmazonS3', 'transfer-encoding': 'chunked', 'x-amz-id-2': 'AAAAAAAAAAAAAAAAAAA', 'x-amz-request-id': 'XXXXXXXXXXXXXXXX' } http_response.raw = six.BytesIO(XMLBODY1) http_response.status_code = 403 http_response.reason = 'Forbidden' http_response.request = Request() session = botocore.session.get_session() s3 = session.get_service('s3') operation = s3.get_operation('ListObjects') # non-streaming operation self.assertEqual( response.get_response(operation.model, http_response)[1], { 'ResponseMetadata': { 'RequestId': 'XXXXXXXXXXXXXXXX', 'HostId': 'AAAAAAAAAAAAAAAAAAA', 'HTTPStatusCode': 403 }, 'Error': { 'Message': 'Access Denied', 'Code': 'AccessDenied', } })
def test_get_response_nonstreaming_ng(self): http_response = Response() http_response.headers = { 'content-type': 'application/xml', 'date': 'Sat, 08 Mar 2014 12:05:44 GMT', 'server': 'AmazonS3', 'transfer-encoding': 'chunked', 'x-amz-id-2': 'AAAAAAAAAAAAAAAAAAA', 'x-amz-request-id': 'XXXXXXXXXXXXXXXX'} http_response.raw = six.BytesIO(XMLBODY2) http_response.status_code = 200 http_response.reason = 'ok' http_response.request = Request() session = botocore.session.get_session() s3 = session.get_service('s3') operation = s3.get_operation('ListObjects') # non-streaming operation self.assertEqual( response.get_response(session, operation, http_response)[1], {u'CommonPrefixes': [], u'Contents': [{u'ETag': '"00000000000000000000000000000000"', u'Key': 'test.png', u'LastModified': '2014-03-01T17:06:40.000Z', u'Owner': {u'DisplayName': 'dummy', u'ID': 'AAAAAAAAAAAAAAAAAAA'}, u'Size': 6702, u'StorageClass': 'STANDARD'}], u'IsTruncated': False, u'Marker': None, u'MaxKeys': 1000, u'Name': 'mybucket', u'Prefix': None, 'ResponseMetadata': {}} )
def test_get_response_nonstreaming_ok(self): http_response = Response() http_response.headers = { 'content-type': 'application/xml', 'date': 'Sun, 09 Mar 2014 02:55:43 GMT', 'server': 'AmazonS3', 'transfer-encoding': 'chunked', 'x-amz-id-2': 'AAAAAAAAAAAAAAAAAAA', 'x-amz-request-id': 'XXXXXXXXXXXXXXXX'} http_response.raw = six.BytesIO(XMLBODY1) http_response.status_code = 403 http_response.reason = 'Forbidden' http_response.request = Request() session = botocore.session.get_session() s3 = session.get_service('s3') operation = s3.get_operation('ListObjects') # non-streaming operation self.assertEqual( response.get_response(session, operation, http_response)[1], { 'ResponseMetadata': {}, 'Errors': [{'HostId': 'AAAAAAAAAAAAAAAAAAA', 'Message': 'Access Denied', 'Code': 'AccessDenied', 'RequestId': 'XXXXXXXXXXXXXXXX'}], 'ResponseMetadata': {}, u'CommonPrefixes': [], u'Contents': [], } )
def build_response(self, request): status_code = self.resp['status_code'] headers = self.resp['headers'] body = self.resp['body'] response = Response() response.status_code = status_code if 'content-type' not in headers: headers['content-type'] = 'text/xml' if 'content-length' not in headers: headers['content-length'] = len(body) response.raw = HTTPResponse( body=io.BytesIO(body), headers=headers, status=status_code, reason=CODE_TO_REASON[status_code], preload_content=False, decode_content=False ) response.reason = response.raw.reason # From the request response.url = request.url response.request = request response.connection = self return response
def build_response(self, request): status_code = self.resp['status_code'] headers = self.resp['headers'] body = self.resp['body'] response = Response() response.status_code = status_code if 'content-type' not in headers: headers['content-type'] = 'text/xml' if 'content-length' not in headers: headers['content-length'] = len(body) response.raw = HTTPResponse(body=io.BytesIO(body), headers=headers, status=status_code, reason=CODE_TO_REASON[status_code], preload_content=False, decode_content=False) response.reason = response.raw.reason # From the request response.url = request.url response.request = request response.connection = self return response
def test_get_response_nonstreaming_ng(self): http_response = Response() http_response.headers = { 'content-type': 'application/xml', 'date': 'Sat, 08 Mar 2014 12:05:44 GMT', 'server': 'AmazonS3', 'transfer-encoding': 'chunked', 'x-amz-id-2': 'AAAAAAAAAAAAAAAAAAA', 'x-amz-request-id': 'XXXXXXXXXXXXXXXX' } http_response.raw = six.BytesIO(XMLBODY2) http_response.status_code = 200 http_response.reason = 'ok' http_response.request = Request() session = botocore.session.get_session() s3 = session.get_service('s3') operation = s3.get_operation('ListObjects') # non-streaming operation self.assertEqual( response.get_response(operation.model, http_response)[1], { u'Contents': [{ u'ETag': '"00000000000000000000000000000000"', u'Key': 'test.png', u'LastModified': datetime.datetime(2014, 3, 1, 17, 6, 40, tzinfo=tzutc()), u'Owner': { u'DisplayName': 'dummy', u'ID': 'AAAAAAAAAAAAAAAAAAA' }, u'Size': 6702, u'StorageClass': 'STANDARD' }], u'IsTruncated': False, u'Marker': "", u'MaxKeys': 1000, u'Name': 'mybucket', u'Prefix': "", 'ResponseMetadata': { 'RequestId': 'XXXXXXXXXXXXXXXX', 'HostId': 'AAAAAAAAAAAAAAAAAAA', 'HTTPStatusCode': 200, } })
def test_get_response_nonstreaming_ng(self): http_response = Response() http_response.headers = { 'content-type': 'application/xml', 'date': 'Sat, 08 Mar 2014 12:05:44 GMT', 'server': 'AmazonS3', 'transfer-encoding': 'chunked', 'x-amz-id-2': 'AAAAAAAAAAAAAAAAAAA', 'x-amz-request-id': 'XXXXXXXXXXXXXXXX'} http_response.raw = six.BytesIO(XMLBODY2) http_response.status_code = 200 http_response.reason = 'ok' http_response.request = Request() session = botocore.session.get_session() service_model = session.get_service_model('s3') operation_model = service_model.operation_model('ListObjects') self.assertEqual( response.get_response(operation_model, http_response)[1], {u'Contents': [{u'ETag': '"00000000000000000000000000000000"', u'Key': 'test.png', u'LastModified': datetime.datetime(2014, 3, 1, 17, 6, 40, tzinfo=tzutc()), u'Owner': {u'DisplayName': 'dummy', u'ID': 'AAAAAAAAAAAAAAAAAAA'}, u'Size': 6702, u'StorageClass': 'STANDARD'}], u'IsTruncated': False, u'Marker': "", u'MaxKeys': 1000, u'Name': 'mybucket', u'Prefix': "", 'ResponseMetadata': { 'RequestId': 'XXXXXXXXXXXXXXXX', 'HostId': 'AAAAAAAAAAAAAAAAAAA', 'HTTPStatusCode': 200, }} )