def test_resolver_with_server_exception(self): client = Mock() client.do_action_with_exception.side_effect = ServerException( "OTHER_ERROR_CODE", "msg") resolver = LocationServiceEndpointResolver(client) request = ResolveEndpointRequest("region_id", "product", "servicecode", "") with self.assertRaises(ServerException) as ex: resolver.resolve(request) self.assertEqual(ex.exception.error_code, "OTHER_ERROR_CODE") self.assertEqual(ex.exception.message, "msg")
def test_resolver_with_server_exception_invalid_regionid(self): client = Mock() client.do_action_with_exception.side_effect = ServerException( "InvalidRegionId", "The specified region does not exist.") resolver = LocationServiceEndpointResolver(client) request = ResolveEndpointRequest("region_id", "product", "servicecode", "") self.assertEqual(resolver.resolve(request), None) client.do_action_with_exception.side_effect = ServerException( "Illegal Parameter", "Please check the parameters") resolver = LocationServiceEndpointResolver(client) request = ResolveEndpointRequest("region_id", "product", "servicecode", "") self.assertEqual(resolver.resolve(request), None)
def test_resolver_with_location(self): client = Mock() client.do_action_with_exception.return_value = ensure_bytes( '{"Code": "Success","Endpoints": {"Endpoint": []}}') resolver = LocationServiceEndpointResolver(client) request = ResolveEndpointRequest("region_id", "product", "servicecode", "") self.assertEqual(resolver.resolve(request), None)
def test_resolver_with_location2(self): client = Mock() client.do_action_with_exception.return_value = ensure_bytes( '{"Code": "Success","Endpoints": {"Endpoint": [{"ServiceCode":"servicecode",' + '"Type":"innerAPI","Endpoint":"the inner endpoint"},{"ServiceCode":"servicecode",' + '"Type":"openAPI","Endpoint":"the endpoint"}]}}') resolver = LocationServiceEndpointResolver(client) request = ResolveEndpointRequest("region_id", "product", "servicecode", "") self.assertEqual(resolver.resolve(request), "the endpoint")
def test_resolver(self): resolver = LocationServiceEndpointResolver(None) # no location_service_code request = ResolveEndpointRequest("", "", "", "") self.assertEqual(resolver.resolve(request), None) # invalid products resolver._invalid_product_codes.add("invalid_product") request = ResolveEndpointRequest("cn-huhehaote", "invalid_product", "servicecode", "") self.assertEqual(resolver.resolve(request), None) # invalid region id resolver._invalid_region_ids.add("invalid_region_id") request = ResolveEndpointRequest("invalid_region_id", "product", "servicecode", "") self.assertEqual(resolver.resolve(request), None) # match cache request = ResolveEndpointRequest("region_id", "product", "servicecode", "") resolver.endpoints_data[ "product.servicecode.region_id.openAPI"] = "the fake endpoint" self.assertEqual(resolver.resolve(request), "the fake endpoint")