8
"github.com/pkg/errors"
9
"github.com/stretchr/testify/assert"
10
"github.com/wal-g/wal-g/internal"
11
conf "github.com/wal-g/wal-g/internal/config"
14
func TestConfigure(t *testing.T) {
15
bucketPath := "s3://bucket/server"
17
doConfigureWithBucketPath(t, bucketPath, "server")
20
func TestConfigureBucketRoot(t *testing.T) {
21
bucketPath := "s3://bucket/"
23
doConfigureWithBucketPath(t, bucketPath, "")
26
func TestConfigureBucketRoot2(t *testing.T) {
27
bucketPath := "s3://bucket"
29
doConfigureWithBucketPath(t, bucketPath, "")
32
func TestConfigureDeepBucket(t *testing.T) {
33
bucketPath := "s3://bucket/subdir/server"
35
doConfigureWithBucketPath(t, bucketPath, "subdir/server")
38
func doConfigureWithBucketPath(t *testing.T, bucketPath string, expectedServer string) {
40
os.Unsetenv("WALE_S3_PREFIX")
41
uploader, err := internal.ConfigureUploader()
42
if _, ok := (errors.Cause(err)).(internal.UnconfiguredStorageError); !ok {
43
t.Errorf("upload: Expected error 'UnconfiguredStorageError' but got %s", err)
45
assert.Nil(t, uploader)
46
internal.ConfigureSettings("")
49
os.Setenv("AWS_ACCESS_KEY_ID", "aws_access_key_id")
50
os.Setenv("AWS_SECRET_ACCESS_KEY", "aws_secret_access_key")
51
os.Setenv("AWS_SESSION_TOKEN", "aws_session_token")
52
os.Setenv("WALE_S3_PREFIX", "gs://abc.com")
53
os.Setenv("AWS_ENDPOINT", "http://127.0.0.1:9000")
54
os.Setenv("AWS_REGION", "")
55
_, err = internal.ConfigureUploader()
56
assert.NoError(t, err)
57
os.Setenv("WALE_S3_PREFIX", "test_fail:")
58
_, err = internal.ConfigureUploader()
60
os.Setenv("WALE_S3_PREFIX", bucketPath)
61
uploader, err = internal.ConfigureUploader()
62
assert.NoError(t, err)
63
assert.Equal(t, expectedServer, strings.TrimSuffix(uploader.Folder().GetPath(), "/"))
64
assert.NotNil(t, uploader)
65
assert.NoError(t, err)
67
os.Setenv("WALG_S3_STORAGE_CLASS", "STANDARD_IA")
68
_, err = internal.ConfigureUploader()
69
assert.NoError(t, err)