Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_make_exception(self):
body = 'bad body'
e = make_exception(self.__fake_response(400, body))
self.assertTrue(isinstance(e, oss2.exceptions.ServerError))
self.assertEqual(e.status, 400)
self.assertEqual(e.body, oss2.to_bytes(body))
body = '<code>NoSuchKey</code>中文和控制字符'
e = make_exception(self.__fake_response(404, body))
self.assertTrue(isinstance(e, oss2.exceptions.NoSuchKey))
self.assertEqual(e.status, 404)
self.assertEqual(e.code, 'NoSuchKey')
class OpenApiServerError(OssError):
def __init__(self, status, request_id, message, error_code):
OssError.__init__(self, status, {OSS_REQUEST_ID : request_id}, '', {'Code': error_code, 'Message': message})
class ServerError(OssError):
pass
class NotFound(ServerError):
status = 404
code = ''
class MalformedXml(ServerError):
status = 400
code = 'MalformedXML'
class InvalidRequest(ServerError):
status = 400
code = 'InvalidRequest'
class OperationNotSupported(ServerError):
status = 400
code = 'OperationNotSupported'
class RestoreAlreadyInProgress(ServerError):
status = 409
class InvalidRequest(ServerError):
status = 400
code = 'InvalidRequest'
class OperationNotSupported(ServerError):
status = 400
code = 'OperationNotSupported'
class RestoreAlreadyInProgress(ServerError):
status = 409
code = 'RestoreAlreadyInProgress'
class InvalidArgument(ServerError):
status = 400
code = 'InvalidArgument'
def __init__(self, status, headers, body, details):
super(InvalidArgument, self).__init__(status, headers, body, details)
self.name = details.get('ArgumentName')
self.value = details.get('ArgumentValue')
class InvalidDigest(ServerError):
status = 400
code = 'InvalidDigest'
class InvalidObjectName(ServerError):
status = 400
class LiveChannelDisabled(Conflict):
status = 409
code = 'LiveChannelDisabled'
class PreconditionFailed(ServerError):
status = 412
code = 'PreconditionFailed'
class NotModified(ServerError):
status = 304
code = ''
class AccessDenied(ServerError):
status = 403
code = 'AccessDenied'
class NoSuchServerSideEncryptionRule(NotFound):
status = 404
code = 'NoSuchServerSideEncryptionRule'
class InvalidEncryptionAlgorithmError(ServerError):
status = 400
code = 'InvalidEncryptionAlgorithmError'
class SelectOperationFailed(ServerError):
code = 'SelectOperationFailed'
def __init__(self, status, code, message):
self.status = status
self.code = code
class ChannelStillLive(Conflict):
status = 409
code = 'ChannelStillLive'
class LiveChannelDisabled(Conflict):
status = 409
code = 'LiveChannelDisabled'
class PreconditionFailed(ServerError):
status = 412
code = 'PreconditionFailed'
class NotModified(ServerError):
status = 304
code = ''
class AccessDenied(ServerError):
status = 403
code = 'AccessDenied'
class NoSuchServerSideEncryptionRule(NotFound):
status = 404
code = 'NoSuchServerSideEncryptionRule'
class InvalidEncryptionAlgorithmError(ServerError):
status = 400
code = 'InvalidEncryptionAlgorithmError'
OssError.__init__(self, OSS_SELECT_CLIENT_ERROR_STATUS, {'x-oss-request-id': request_id}, 'SelectOperationClientError: ' + message, {})
def __str__(self):
error = {'x-oss-request-id':self.request_id,
'message': self.message}
return str(error)
class SignatureDoesNotMatch(ServerError):
status = 403
code = 'SignatureDoesNotMatch'
class ObjectAlreadyExists(ServerError):
status = 400
code = 'ObjectAlreadyExists'
class PartNotSequential(ServerError):
status = 400
code = 'PartNotSequential'
def make_exception(resp):
status = resp.status
headers = resp.headers
body = resp.read(4096)
details = _parse_error_body(body)
code = details.get('Code', '')
try:
klass = _OSS_ERROR_TO_EXCEPTION[(status, code)]
return klass(status, headers, body, details)
except KeyError:
return ServerError(status, headers, body, details)
class NotModified(ServerError):
status = 304
code = ''
class AccessDenied(ServerError):
status = 403
code = 'AccessDenied'
class NoSuchServerSideEncryptionRule(NotFound):
status = 404
code = 'NoSuchServerSideEncryptionRule'
class InvalidEncryptionAlgorithmError(ServerError):
status = 400
code = 'InvalidEncryptionAlgorithmError'
class SelectOperationFailed(ServerError):
code = 'SelectOperationFailed'
def __init__(self, status, code, message):
self.status = status
self.code = code
self.message = message
def __str__(self):
error = {'status': self.status,
'code': self.code,
'details': self.message}
return str(error)
class RestoreAlreadyInProgress(ServerError):
status = 409
code = 'RestoreAlreadyInProgress'
class InvalidArgument(ServerError):
status = 400
code = 'InvalidArgument'
def __init__(self, status, headers, body, details):
super(InvalidArgument, self).__init__(status, headers, body, details)
self.name = details.get('ArgumentName')
self.value = details.get('ArgumentValue')
class InvalidDigest(ServerError):
status = 400
code = 'InvalidDigest'
class InvalidObjectName(ServerError):
status = 400
code = 'InvalidObjectName'
class NotImplemented(ServerError):
status = 400
code = 'NotImplemented'
class InvalidEncryptionRequest(ServerError):
status = 400
class NotFound(ServerError):
status = 404
code = ''
class MalformedXml(ServerError):
status = 400
code = 'MalformedXML'
class InvalidRequest(ServerError):
status = 400
code = 'InvalidRequest'
class OperationNotSupported(ServerError):
status = 400
code = 'OperationNotSupported'
class RestoreAlreadyInProgress(ServerError):
status = 409
code = 'RestoreAlreadyInProgress'
class InvalidArgument(ServerError):
status = 400
code = 'InvalidArgument'
def __init__(self, status, headers, body, details):
super(InvalidArgument, self).__init__(status, headers, body, details)
self.name = details.get('ArgumentName')
OssError.__init__(self, OSS_FORMAT_ERROR_STATUS, {}, message, {})
def __str__(self):
return self._str_with_body()
class OpenApiServerError(OssError):
def __init__(self, status, request_id, message, error_code):
OssError.__init__(self, status, {OSS_REQUEST_ID : request_id}, '', {'Code': error_code, 'Message': message})
class ServerError(OssError):
pass
class NotFound(ServerError):
status = 404
code = ''
class MalformedXml(ServerError):
status = 400
code = 'MalformedXML'
class InvalidRequest(ServerError):
status = 400
code = 'InvalidRequest'
class OperationNotSupported(ServerError):
status = 400