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.

migrate_storage_test.go 1.8KB

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