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.9KB

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