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  }