wal-g

Форк
0
/
upload_test.go 
70 строк · 2.0 Кб
1
package internal_test
2

3
import (
4
	"os"
5
	"strings"
6
	"testing"
7

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"
12
)
13

14
func TestConfigure(t *testing.T) {
15
	bucketPath := "s3://bucket/server"
16

17
	doConfigureWithBucketPath(t, bucketPath, "server")
18
}
19

20
func TestConfigureBucketRoot(t *testing.T) {
21
	bucketPath := "s3://bucket/"
22

23
	doConfigureWithBucketPath(t, bucketPath, "")
24
}
25

26
func TestConfigureBucketRoot2(t *testing.T) {
27
	bucketPath := "s3://bucket"
28

29
	doConfigureWithBucketPath(t, bucketPath, "")
30
}
31

32
func TestConfigureDeepBucket(t *testing.T) {
33
	bucketPath := "s3://bucket/subdir/server"
34

35
	doConfigureWithBucketPath(t, bucketPath, "subdir/server")
36
}
37

38
func doConfigureWithBucketPath(t *testing.T, bucketPath string, expectedServer string) {
39
	// Test empty environment variables
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)
44
	}
45
	assert.Nil(t, uploader)
46
	internal.ConfigureSettings("")
47
	conf.InitConfig()
48
	conf.Configure()
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()
59
	assert.Error(t, err)
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)
66
	// Test STANDARD_IA storage class
67
	os.Setenv("WALG_S3_STORAGE_CLASS", "STANDARD_IA")
68
	_, err = internal.ConfigureUploader()
69
	assert.NoError(t, err)
70
}
71

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.