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.

repo_transfer_test.go 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. // Copyright 2021 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package models
  4. import (
  5. "testing"
  6. "code.gitea.io/gitea/models/db"
  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})
  15. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 3})
  16. transfer, err := GetPendingRepositoryTransfer(db.DefaultContext, repo)
  17. assert.NoError(t, err)
  18. assert.NotNil(t, transfer)
  19. // Cancel transfer
  20. assert.NoError(t, CancelRepositoryTransfer(db.DefaultContext, repo))
  21. transfer, err = GetPendingRepositoryTransfer(db.DefaultContext, 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})
  26. assert.NoError(t, CreatePendingRepositoryTransfer(db.DefaultContext, doer, user2, repo.ID, nil))
  27. transfer, err = GetPendingRepositoryTransfer(db.DefaultContext, repo)
  28. assert.Nil(t, err)
  29. assert.NoError(t, transfer.LoadAttributes(db.DefaultContext))
  30. assert.Equal(t, "user2", transfer.Recipient.Name)
  31. org6 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
  32. // Only transfer can be started at any given time
  33. err = CreatePendingRepositoryTransfer(db.DefaultContext, doer, org6, repo.ID, nil)
  34. assert.Error(t, err)
  35. assert.True(t, IsErrRepoTransferInProgress(err))
  36. // Unknown user
  37. err = CreatePendingRepositoryTransfer(db.DefaultContext, doer, &user_model.User{ID: 1000, LowerName: "user1000"}, repo.ID, nil)
  38. assert.Error(t, err)
  39. // Cancel transfer
  40. assert.NoError(t, CancelRepositoryTransfer(db.DefaultContext, repo))
  41. }