選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

repo_transfer_test.go 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // Copyright 2021 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package models
  5. import (
  6. "testing"
  7. repo_model "code.gitea.io/gitea/models/repo"
  8. "code.gitea.io/gitea/models/unittest"
  9. user_model "code.gitea.io/gitea/models/user"
  10. "github.com/stretchr/testify/assert"
  11. )
  12. func TestRepositoryTransfer(t *testing.T) {
  13. assert.NoError(t, unittest.PrepareTestDatabase())
  14. doer := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 3}).(*user_model.User)
  15. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 3}).(*repo_model.Repository)
  16. transfer, err := GetPendingRepositoryTransfer(repo)
  17. assert.NoError(t, err)
  18. assert.NotNil(t, transfer)
  19. // Cancel transfer
  20. assert.NoError(t, CancelRepositoryTransfer(repo))
  21. transfer, err = GetPendingRepositoryTransfer(repo)
  22. assert.Error(t, err)
  23. assert.Nil(t, transfer)
  24. assert.True(t, IsErrNoPendingTransfer(err))
  25. user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
  26. assert.NoError(t, CreatePendingRepositoryTransfer(doer, user2, repo.ID, nil))
  27. transfer, err = GetPendingRepositoryTransfer(repo)
  28. assert.Nil(t, err)
  29. assert.NoError(t, transfer.LoadAttributes())
  30. assert.Equal(t, "user2", transfer.Recipient.Name)
  31. user6 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
  32. // Only transfer can be started at any given time
  33. err = CreatePendingRepositoryTransfer(doer, user6, repo.ID, nil)
  34. assert.Error(t, err)
  35. assert.True(t, IsErrRepoTransferInProgress(err))
  36. // Unknown user
  37. err = CreatePendingRepositoryTransfer(doer, &user_model.User{ID: 1000, LowerName: "user1000"}, repo.ID, nil)
  38. assert.Error(t, err)
  39. // Cancel transfer
  40. assert.NoError(t, CancelRepositoryTransfer(repo))
  41. }