code.gitea.io/gitea@v1.22.3/modules/setting/repository_archive_test.go (about) 1 // Copyright 2023 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package setting 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func Test_getStorageInheritNameSectionTypeForRepoArchive(t *testing.T) { 13 // packages storage inherits from storage if nothing configured 14 iniStr := ` 15 [storage] 16 STORAGE_TYPE = minio 17 ` 18 cfg, err := NewConfigProviderFromData(iniStr) 19 assert.NoError(t, err) 20 assert.NoError(t, loadRepoArchiveFrom(cfg)) 21 22 assert.EqualValues(t, "minio", RepoArchive.Storage.Type) 23 assert.EqualValues(t, "repo-archive/", RepoArchive.Storage.MinioConfig.BasePath) 24 25 // we can also configure packages storage directly 26 iniStr = ` 27 [storage.repo-archive] 28 STORAGE_TYPE = minio 29 ` 30 cfg, err = NewConfigProviderFromData(iniStr) 31 assert.NoError(t, err) 32 assert.NoError(t, loadRepoArchiveFrom(cfg)) 33 34 assert.EqualValues(t, "minio", RepoArchive.Storage.Type) 35 assert.EqualValues(t, "repo-archive/", RepoArchive.Storage.MinioConfig.BasePath) 36 37 // or we can indicate the storage type in the packages section 38 iniStr = ` 39 [repo-archive] 40 STORAGE_TYPE = my_minio 41 42 [storage.my_minio] 43 STORAGE_TYPE = minio 44 ` 45 cfg, err = NewConfigProviderFromData(iniStr) 46 assert.NoError(t, err) 47 assert.NoError(t, loadRepoArchiveFrom(cfg)) 48 49 assert.EqualValues(t, "minio", RepoArchive.Storage.Type) 50 assert.EqualValues(t, "repo-archive/", RepoArchive.Storage.MinioConfig.BasePath) 51 52 // or we can indicate the storage type and minio base path in the packages section 53 iniStr = ` 54 [repo-archive] 55 STORAGE_TYPE = my_minio 56 MINIO_BASE_PATH = my_archive/ 57 58 [storage.my_minio] 59 STORAGE_TYPE = minio 60 ` 61 cfg, err = NewConfigProviderFromData(iniStr) 62 assert.NoError(t, err) 63 assert.NoError(t, loadRepoArchiveFrom(cfg)) 64 65 assert.EqualValues(t, "minio", RepoArchive.Storage.Type) 66 assert.EqualValues(t, "my_archive/", RepoArchive.Storage.MinioConfig.BasePath) 67 } 68 69 func Test_RepoArchiveStorage(t *testing.T) { 70 iniStr := ` 71 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 72 [storage] 73 STORAGE_TYPE = minio 74 MINIO_ENDPOINT = s3.my-domain.net 75 MINIO_BUCKET = gitea 76 MINIO_LOCATION = homenet 77 MINIO_USE_SSL = true 78 MINIO_ACCESS_KEY_ID = correct_key 79 MINIO_SECRET_ACCESS_KEY = correct_key 80 ` 81 cfg, err := NewConfigProviderFromData(iniStr) 82 assert.NoError(t, err) 83 84 assert.NoError(t, loadRepoArchiveFrom(cfg)) 85 storage := RepoArchive.Storage 86 87 assert.EqualValues(t, "minio", storage.Type) 88 assert.EqualValues(t, "gitea", storage.MinioConfig.Bucket) 89 90 iniStr = ` 91 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 92 [storage.repo-archive] 93 STORAGE_TYPE = s3 94 [storage.s3] 95 STORAGE_TYPE = minio 96 MINIO_ENDPOINT = s3.my-domain.net 97 MINIO_BUCKET = gitea 98 MINIO_LOCATION = homenet 99 MINIO_USE_SSL = true 100 MINIO_ACCESS_KEY_ID = correct_key 101 MINIO_SECRET_ACCESS_KEY = correct_key 102 ` 103 cfg, err = NewConfigProviderFromData(iniStr) 104 assert.NoError(t, err) 105 106 assert.NoError(t, loadRepoArchiveFrom(cfg)) 107 storage = RepoArchive.Storage 108 109 assert.EqualValues(t, "minio", storage.Type) 110 assert.EqualValues(t, "gitea", storage.MinioConfig.Bucket) 111 }