Exemplo n.º 1
0
    def test_missing_message_in_response2(self):
        # test missing Code in response
        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"{\"Code\": \"YouMessedSomethingUp\"}"

        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.describe_regions()
                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("YouMessedSomethingUp", e.error_code)
                if six.PY2:
                    self.assertEqual('ServerResponseBody: {"Code": "YouMessedSomethingUp"}',
                                     e.error_message)
                else:
                    self.assertEqual("""ServerResponseBody: b'{"Code": "YouMessedSomethingUp"}'""",
                                     e.error_message)
Exemplo n.º 2
0
    def test_missing_message_in_response(self):
        # test missing message in response
        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"{\"Message\": \"Some message\"}"

        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.describe_regions()
                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)
                self.assertEqual("""Some message""", e.error_message)
    def test_endpoint_comes_from_location_service(self):
        temp_client = self.temp_client('ECS', None, None, 'ecs')
        self.init_env(temp_client.config, temp_client.credentials_provider,
                      "{}")  # empty local config

        from alibabacloud.clients.ecs_20140526 import EcsClient
        ecs_client = EcsClient(self.client_config,
                               self.init_credentials_provider())
        ecs_client.describe_regions()

        ecs_client.endpoint_resolver = DefaultEndpointResolver(
            ecs_client.config, ecs_client.credentials_provider)
        with patch.object(self._location_service_endpoint_resolver,
                          '_call_location_service',
                          wraps=self._location_service_endpoint_resolver.
                          _call_location_service) as monkey:
            for i in range(3):
                self.assertEqual(
                    "ecs-cn-hangzhou.aliyuncs.com",
                    ecs_client.endpoint_resolver.resolve(
                        self.resolve_request("cn-hangzhou", "ecs", "ecs",
                                             None)))

        self.assertEqual(0, monkey.call_count)
 def test_call_rpc_request_with_client(self):
     ecs_client = EcsClient(self.client_config,
                            self.init_credentials_provider())
     response = ecs_client.describe_regions()
     self.assertTrue(response.get('RequestId'))