You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

repository_archive_test.go 3.0KB

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