2023-06-14 06:42:38 +03:00
// Copyright 2023 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package setting
import (
"testing"
"github.com/stretchr/testify/assert"
2024-07-30 22:41:10 +03:00
"github.com/stretchr/testify/require"
2023-06-14 06:42:38 +03:00
)
func Test_getStorageInheritNameSectionTypeForRepoArchive ( t * testing . T ) {
// packages storage inherits from storage if nothing configured
iniStr := `
[ storage ]
STORAGE_TYPE = minio
`
cfg , err := NewConfigProviderFromData ( iniStr )
2024-07-30 22:41:10 +03:00
require . NoError ( t , err )
require . NoError ( t , loadRepoArchiveFrom ( cfg ) )
2023-06-14 06:42:38 +03:00
assert . EqualValues ( t , "minio" , RepoArchive . Storage . Type )
assert . EqualValues ( t , "repo-archive/" , RepoArchive . Storage . MinioConfig . BasePath )
// we can also configure packages storage directly
iniStr = `
[ storage . repo - archive ]
STORAGE_TYPE = minio
`
cfg , err = NewConfigProviderFromData ( iniStr )
2024-07-30 22:41:10 +03:00
require . NoError ( t , err )
require . NoError ( t , loadRepoArchiveFrom ( cfg ) )
2023-06-14 06:42:38 +03:00
assert . EqualValues ( t , "minio" , RepoArchive . Storage . Type )
assert . EqualValues ( t , "repo-archive/" , RepoArchive . Storage . MinioConfig . BasePath )
// or we can indicate the storage type in the packages section
iniStr = `
[ repo - archive ]
STORAGE_TYPE = my_minio
[ storage . my_minio ]
STORAGE_TYPE = minio
`
cfg , err = NewConfigProviderFromData ( iniStr )
2024-07-30 22:41:10 +03:00
require . NoError ( t , err )
require . NoError ( t , loadRepoArchiveFrom ( cfg ) )
2023-06-14 06:42:38 +03:00
assert . EqualValues ( t , "minio" , RepoArchive . Storage . Type )
assert . EqualValues ( t , "repo-archive/" , RepoArchive . Storage . MinioConfig . BasePath )
// or we can indicate the storage type and minio base path in the packages section
iniStr = `
[ repo - archive ]
STORAGE_TYPE = my_minio
MINIO_BASE_PATH = my_archive /
[ storage . my_minio ]
STORAGE_TYPE = minio
`
cfg , err = NewConfigProviderFromData ( iniStr )
2024-07-30 22:41:10 +03:00
require . NoError ( t , err )
require . NoError ( t , loadRepoArchiveFrom ( cfg ) )
2023-06-14 06:42:38 +03:00
assert . EqualValues ( t , "minio" , RepoArchive . Storage . Type )
assert . EqualValues ( t , "my_archive/" , RepoArchive . Storage . MinioConfig . BasePath )
}
func Test_RepoArchiveStorage ( t * testing . T ) {
iniStr := `
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
[ storage ]
STORAGE_TYPE = minio
MINIO_ENDPOINT = s3 . my - domain . net
MINIO_BUCKET = gitea
MINIO_LOCATION = homenet
MINIO_USE_SSL = true
MINIO_ACCESS_KEY_ID = correct_key
MINIO_SECRET_ACCESS_KEY = correct_key
`
cfg , err := NewConfigProviderFromData ( iniStr )
2024-07-30 22:41:10 +03:00
require . NoError ( t , err )
2023-06-14 06:42:38 +03:00
2024-07-30 22:41:10 +03:00
require . NoError ( t , loadRepoArchiveFrom ( cfg ) )
2023-06-14 06:42:38 +03:00
storage := RepoArchive . Storage
assert . EqualValues ( t , "minio" , storage . Type )
assert . EqualValues ( t , "gitea" , storage . MinioConfig . Bucket )
iniStr = `
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
[ storage . repo - archive ]
STORAGE_TYPE = s3
[ storage . s3 ]
STORAGE_TYPE = minio
MINIO_ENDPOINT = s3 . my - domain . net
MINIO_BUCKET = gitea
MINIO_LOCATION = homenet
MINIO_USE_SSL = true
MINIO_ACCESS_KEY_ID = correct_key
MINIO_SECRET_ACCESS_KEY = correct_key
`
cfg , err = NewConfigProviderFromData ( iniStr )
2024-07-30 22:41:10 +03:00
require . NoError ( t , err )
2023-06-14 06:42:38 +03:00
2024-07-30 22:41:10 +03:00
require . NoError ( t , loadRepoArchiveFrom ( cfg ) )
2023-06-14 06:42:38 +03:00
storage = RepoArchive . Storage
assert . EqualValues ( t , "minio" , storage . Type )
assert . EqualValues ( t , "gitea" , storage . MinioConfig . Bucket )
}