def test_server_error_with_a_bad_json(self): def _handle_request(context): context.retry_flag = False context.http_response = Response() context.http_response.status_code = 400 context.http_response.headers = {} context.http_response._content = b"bad-json" ecs_client = EcsClient(self.client_config, self.init_credentials_provider()) ecs_client.handlers = DEFAULT_HANDLERS with patch.object(http_handler, "handle_request", wraps=_handle_request): try: ecs_client.delete_instance() assert False except ServerException as e: self.assertEqual(400, e.http_status) self.assertEqual("Ecs", e.service_name) self.assertEqual("ecs-cn-hangzhou.aliyuncs.com", e.endpoint) self.assertEqual("SDK.UnknownServerError", e.error_code) if six.PY2: self.assertEqual('ServerResponseBody: bad-json', e.error_message) else: self.assertEqual("ServerResponseBody: b'bad-json'", e.error_message)
def test_server_error_normal(self): ecs_client = EcsClient(self.client_config, self.init_credentials_provider()) try: ecs_client.delete_instance(instance_id="blah") assert False except ServerException as e: self.assertEqual("InvalidInstanceId.NotFound", e.error_code) self.assertEqual("The specified InstanceId does not exist.", e.error_message)