您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

migrate_storage_test.go 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. // Copyright 2022 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package cmd
  4. import (
  5. "context"
  6. "os"
  7. "strings"
  8. "testing"
  9. "code.gitea.io/gitea/models/db"
  10. "code.gitea.io/gitea/models/packages"
  11. "code.gitea.io/gitea/models/unittest"
  12. user_model "code.gitea.io/gitea/models/user"
  13. packages_module "code.gitea.io/gitea/modules/packages"
  14. "code.gitea.io/gitea/modules/setting"
  15. "code.gitea.io/gitea/modules/storage"
  16. packages_service "code.gitea.io/gitea/services/packages"
  17. "github.com/stretchr/testify/assert"
  18. )
  19. func TestMigratePackages(t *testing.T) {
  20. assert.NoError(t, unittest.PrepareTestDatabase())
  21. creator := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1})
  22. content := "package main\n\nfunc main() {\nfmt.Println(\"hi\")\n}\n"
  23. buf, err := packages_module.CreateHashedBufferFromReaderWithSize(strings.NewReader(content), 1024)
  24. assert.NoError(t, err)
  25. defer buf.Close()
  26. v, f, err := packages_service.CreatePackageAndAddFile(db.DefaultContext, &packages_service.PackageCreationInfo{
  27. PackageInfo: packages_service.PackageInfo{
  28. Owner: creator,
  29. PackageType: packages.TypeGeneric,
  30. Name: "test",
  31. Version: "1.0.0",
  32. },
  33. Creator: creator,
  34. SemverCompatible: true,
  35. VersionProperties: map[string]string{},
  36. }, &packages_service.PackageFileCreationInfo{
  37. PackageFileInfo: packages_service.PackageFileInfo{
  38. Filename: "a.go",
  39. },
  40. Creator: creator,
  41. Data: buf,
  42. IsLead: true,
  43. })
  44. assert.NoError(t, err)
  45. assert.NotNil(t, v)
  46. assert.NotNil(t, f)
  47. ctx := context.Background()
  48. p := t.TempDir()
  49. dstStorage, err := storage.NewLocalStorage(
  50. ctx,
  51. &setting.Storage{
  52. Path: p,
  53. })
  54. assert.NoError(t, err)
  55. err = migratePackages(ctx, dstStorage)
  56. assert.NoError(t, err)
  57. entries, err := os.ReadDir(p)
  58. assert.NoError(t, err)
  59. assert.Len(t, entries, 2)
  60. assert.EqualValues(t, "01", entries[0].Name())
  61. assert.EqualValues(t, "tmp", entries[1].Name())
  62. }