github.com/aliyun/credentials-go@v1.4.7/credentials/providers/env_test.go (about) 1 package providers 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/aliyun/credentials-go/credentials/internal/utils" 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestEnvironmentVariableCredentialsProvider(t *testing.T) { 12 rollback := utils.Memory("ALIBABA_CLOUD_ACCESS_KEY_ID", "ALIBABA_CLOUD_ACCESS_KEY_SECRET", "ALIBABA_CLOUD_SECURITY_TOKEN") 13 defer rollback() 14 15 p, err := NewEnvironmentVariableCredentialsProviderBuilder().Build() 16 assert.Nil(t, err) 17 _, err = p.GetCredentials() 18 assert.EqualError(t, err, "unable to get credentials from enviroment variables, Access key ID must be specified via environment variable (ALIBABA_CLOUD_ACCESS_KEY_ID)") 19 os.Setenv("ALIBABA_CLOUD_ACCESS_KEY_ID", "akid") 20 _, err = p.GetCredentials() 21 assert.EqualError(t, err, "unable to get credentials from enviroment variables, Access key secret must be specified via environment variable (ALIBABA_CLOUD_ACCESS_KEY_SECRET)") 22 23 os.Setenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET", "aksecret") 24 cc, err := p.GetCredentials() 25 assert.Nil(t, err) 26 assert.Equal(t, "akid", cc.AccessKeyId) 27 assert.Equal(t, "aksecret", cc.AccessKeySecret) 28 assert.Equal(t, "", cc.SecurityToken) 29 assert.Equal(t, "env", cc.ProviderName) 30 31 os.Setenv("ALIBABA_CLOUD_SECURITY_TOKEN", "token") 32 cc, err = p.GetCredentials() 33 assert.Nil(t, err) 34 assert.Equal(t, "akid", cc.AccessKeyId) 35 assert.Equal(t, "aksecret", cc.AccessKeySecret) 36 assert.Equal(t, "token", cc.SecurityToken) 37 assert.Equal(t, "env", cc.ProviderName) 38 }