github.com/muhammadn/cortex@v1.9.1-0.20220510110439-46bb7000d03d/pkg/storage/bucket/client_test.go (about) 1 package bucket 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/grafana/dskit/flagext" 8 "github.com/stretchr/testify/assert" 9 "github.com/stretchr/testify/require" 10 yaml "gopkg.in/yaml.v2" 11 12 util_log "github.com/cortexproject/cortex/pkg/util/log" 13 ) 14 15 const ( 16 configWithS3Backend = ` 17 backend: s3 18 s3: 19 endpoint: localhost 20 bucket_name: test 21 access_key_id: xxx 22 secret_access_key: yyy 23 insecure: true 24 ` 25 26 configWithGCSBackend = ` 27 backend: gcs 28 gcs: 29 bucket_name: test 30 service_account: |- 31 { 32 "type": "service_account", 33 "project_id": "id", 34 "private_key_id": "id", 35 "private_key": "-----BEGIN PRIVATE KEY-----\nSOMETHING\n-----END PRIVATE KEY-----\n", 36 "client_email": "test@test.com", 37 "client_id": "12345", 38 "auth_uri": "https://accounts.google.com/o/oauth2/auth", 39 "token_uri": "https://oauth2.googleapis.com/token", 40 "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", 41 "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/test%40test.com" 42 } 43 ` 44 45 configWithUnknownBackend = ` 46 backend: unknown 47 ` 48 ) 49 50 func TestNewClient(t *testing.T) { 51 t.Parallel() 52 53 tests := map[string]struct { 54 config string 55 expectedErr error 56 }{ 57 "should create an S3 bucket": { 58 config: configWithS3Backend, 59 expectedErr: nil, 60 }, 61 "should create a GCS bucket": { 62 config: configWithGCSBackend, 63 expectedErr: nil, 64 }, 65 "should return error on unknown backend": { 66 config: configWithUnknownBackend, 67 expectedErr: ErrUnsupportedStorageBackend, 68 }, 69 } 70 71 for testName, testData := range tests { 72 testData := testData 73 74 t.Run(testName, func(t *testing.T) { 75 // Load config 76 cfg := Config{} 77 flagext.DefaultValues(&cfg) 78 79 err := yaml.Unmarshal([]byte(testData.config), &cfg) 80 require.NoError(t, err) 81 82 // Instance a new bucket client from the config 83 bucketClient, err := NewClient(context.Background(), cfg, "test", util_log.Logger, nil) 84 require.Equal(t, testData.expectedErr, err) 85 86 if testData.expectedErr == nil { 87 require.NotNil(t, bucketClient) 88 bucketClient.Close() 89 } else { 90 assert.Equal(t, nil, bucketClient) 91 } 92 }) 93 } 94 }