コード例 #1
0
ファイル: test_response.py プロジェクト: coreymaher/botocore
    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',}
              }
            )
コード例 #2
0
    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',
                }
            })
コード例 #3
0
ファイル: test_response.py プロジェクト: Lumida/botocore
    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': {}}
            )
コード例 #4
0
ファイル: test_response.py プロジェクト: Lumida/botocore
    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': [],
              }
            )
コード例 #5
0
ファイル: s3mock.py プロジェクト: mozilla/antenna
    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
コード例 #6
0
ファイル: s3mock.py プロジェクト: jinyongjie/antenna
    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
コード例 #7
0
    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,
                }
            })
コード例 #8
0
ファイル: test_response.py プロジェクト: coreymaher/botocore
    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,
             }}
        )