...

Source file src/github.com/aws/aws-sdk-go-v2/config/resolve_processcreds_test.go

Documentation: github.com/aws/aws-sdk-go-v2/config

     1  package config
     2  
     3  import (
     4  	"context"
     5  	"os"
     6  	"path/filepath"
     7  	"runtime"
     8  	"testing"
     9  
    10  	"github.com/aws/aws-sdk-go-v2/internal/awstesting"
    11  )
    12  
    13  func setupEnvForProcesscredsConfigFile() {
    14  	filename := "proc_creds_config.ini"
    15  	if runtime.GOOS == "windows" {
    16  		filename = "proc_creds_config_win.ini"
    17  	}
    18  
    19  	os.Setenv("AWS_CONFIG_FILE", filepath.Join("testdata", filename))
    20  	os.Setenv("AWS_SHARED_CREDENTIALS_FILE", filepath.Join("testdata", "empty_creds_config"))
    21  }
    22  
    23  func setupEnvForProcesscredsCredentialsFile() {
    24  	filename := "proc_creds_credentials.ini"
    25  	if runtime.GOOS == "windows" {
    26  		filename = "proc_creds_credentials_win.ini"
    27  	}
    28  
    29  	os.Setenv("AWS_SHARED_CREDENTIALS_FILE", filepath.Join("testdata", filename))
    30  }
    31  
    32  func TestProcessCredentialsProvider_FromConfig(t *testing.T) {
    33  	restoreEnv := awstesting.StashEnv()
    34  	defer awstesting.PopEnv(restoreEnv)
    35  
    36  	setupEnvForProcesscredsConfigFile()
    37  
    38  	config, err := LoadDefaultConfig(context.Background(), WithRegion("region"))
    39  	if err != nil {
    40  		t.Fatalf("error loading default config: %v", err)
    41  	}
    42  
    43  	v, err := config.Credentials.Retrieve(context.Background())
    44  	if err != nil {
    45  		t.Errorf("error getting credentials: %v", err)
    46  	}
    47  
    48  	if e, a := "accessKey", v.AccessKeyID; e != a {
    49  		t.Errorf("expected %v, got %v", e, a)
    50  	}
    51  
    52  	if e, a := "secret", v.SecretAccessKey; e != a {
    53  		t.Errorf("expected %v, got %v", e, a)
    54  	}
    55  
    56  	if e, a := "tokenDefault", v.SessionToken; e != a {
    57  		t.Errorf("expected %v, got %v", e, a)
    58  	}
    59  
    60  }
    61  
    62  func TestProcessCredentialsProvider_FromConfigWithProfile(t *testing.T) {
    63  	restoreEnv := awstesting.StashEnv()
    64  	defer awstesting.PopEnv(restoreEnv)
    65  
    66  	os.Setenv("AWS_PROFILE", "not_expire")
    67  	setupEnvForProcesscredsConfigFile()
    68  
    69  	config, err := LoadDefaultConfig(context.Background(), WithRegion("region"))
    70  	if err != nil {
    71  		t.Fatalf("error loading default config: %v", err)
    72  	}
    73  
    74  	v, err := config.Credentials.Retrieve(context.Background())
    75  	if err != nil {
    76  		t.Errorf("error getting credentials: %v", err)
    77  	}
    78  
    79  	if e, a := "nonDefaultToken", v.SessionToken; e != a {
    80  		t.Errorf("expected %v, got %v", e, a)
    81  	}
    82  
    83  }
    84  
    85  func TestProcessCredentialsProvider_FromConfigWithStaticCreds(t *testing.T) {
    86  	restoreEnv := awstesting.StashEnv()
    87  	defer awstesting.PopEnv(restoreEnv)
    88  
    89  	os.Setenv("AWS_PROFILE", "not_alone")
    90  	setupEnvForProcesscredsConfigFile()
    91  
    92  	config, err := LoadDefaultConfig(context.Background(), WithRegion("region"))
    93  	if err != nil {
    94  		t.Fatalf("error loading default config: %v", err)
    95  	}
    96  
    97  	v, err := config.Credentials.Retrieve(context.Background())
    98  	if err != nil {
    99  		t.Errorf("error getting credentials: %v", err)
   100  	}
   101  
   102  	if e, a := "notFromCredProcAccess", v.AccessKeyID; e != a {
   103  		t.Errorf("expected %v, got %v", e, a)
   104  	}
   105  
   106  	if e, a := "notFromCredProcSecret", v.SecretAccessKey; e != a {
   107  		t.Errorf("expected %v, got %v", e, a)
   108  	}
   109  
   110  }
   111  
   112  func TestProcessCredentialsProvider_FromCredentials(t *testing.T) {
   113  	restoreEnv := awstesting.StashEnv()
   114  	defer awstesting.PopEnv(restoreEnv)
   115  
   116  	setupEnvForProcesscredsCredentialsFile()
   117  
   118  	config, err := LoadDefaultConfig(context.Background(), WithRegion("region"))
   119  	if err != nil {
   120  		t.Fatalf("error loading default config: %v", err)
   121  	}
   122  
   123  	v, err := config.Credentials.Retrieve(context.Background())
   124  	if err != nil {
   125  		t.Errorf("error getting credentials: %v", err)
   126  	}
   127  
   128  	if e, a := "accessKey", v.AccessKeyID; e != a {
   129  		t.Errorf("expected %v, got %v", e, a)
   130  	}
   131  
   132  	if e, a := "secret", v.SecretAccessKey; e != a {
   133  		t.Errorf("expected %v, got %v", e, a)
   134  	}
   135  
   136  	if e, a := "tokenDefault", v.SessionToken; e != a {
   137  		t.Errorf("expected %v, got %v", e, a)
   138  	}
   139  
   140  }
   141  
   142  func TestProcessCredentialsProvider_FromCredentialsWithProfile(t *testing.T) {
   143  	restoreEnv := awstesting.StashEnv()
   144  	defer awstesting.PopEnv(restoreEnv)
   145  
   146  	os.Setenv("AWS_PROFILE", "not_expire")
   147  	setupEnvForProcesscredsCredentialsFile()
   148  
   149  	config, err := LoadDefaultConfig(context.Background(), WithRegion("region"))
   150  	if err != nil {
   151  		t.Fatalf("error loading default config: %v", err)
   152  	}
   153  
   154  	v, err := config.Credentials.Retrieve(context.Background())
   155  	if err != nil {
   156  		t.Errorf("error getting credentials: %v", err)
   157  	}
   158  
   159  	if e, a := "nonDefaultToken", v.SessionToken; e != a {
   160  		t.Errorf("expected %v, got %v", e, a)
   161  	}
   162  
   163  }
   164  
   165  func TestProcessCredentialsProvider_FromCredentialsWithStaticCreds(t *testing.T) {
   166  	restoreEnv := awstesting.StashEnv()
   167  	defer awstesting.PopEnv(restoreEnv)
   168  
   169  	os.Setenv("AWS_PROFILE", "not_alone")
   170  	setupEnvForProcesscredsCredentialsFile()
   171  
   172  	config, err := LoadDefaultConfig(context.Background(), WithRegion("region"))
   173  	if err != nil {
   174  		t.Fatalf("error loading default config: %v", err)
   175  	}
   176  
   177  	v, err := config.Credentials.Retrieve(context.Background())
   178  	if err != nil {
   179  		t.Errorf("error getting credentials: %v", err)
   180  	}
   181  
   182  	if e, a := "notFromCredProcAccess", v.AccessKeyID; e != a {
   183  		t.Errorf("expected %v, got %v", e, a)
   184  	}
   185  
   186  	if e, a := "notFromCredProcSecret", v.SecretAccessKey; e != a {
   187  		t.Errorf("expected %v, got %v", e, a)
   188  	}
   189  }
   190  

View as plain text