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  }