gitea源码

create_test.go 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // Copyright 2025 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package repository
  4. import (
  5. "os"
  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. "code.gitea.io/gitea/modules/util"
  11. "github.com/stretchr/testify/assert"
  12. )
  13. func TestCreateRepositoryDirectly(t *testing.T) {
  14. assert.NoError(t, unittest.PrepareTestDatabase())
  15. // a successful creating repository
  16. user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
  17. createdRepo, err := CreateRepositoryDirectly(t.Context(), user2, user2, CreateRepoOptions{
  18. Name: "created-repo",
  19. }, true)
  20. assert.NoError(t, err)
  21. assert.NotNil(t, createdRepo)
  22. exist, err := util.IsExist(repo_model.RepoPath(user2.Name, createdRepo.Name))
  23. assert.NoError(t, err)
  24. assert.True(t, exist)
  25. unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{OwnerName: user2.Name, Name: createdRepo.Name})
  26. err = DeleteRepositoryDirectly(t.Context(), createdRepo.ID)
  27. assert.NoError(t, err)
  28. // a failed creating because some mock data
  29. // create the repository directory so that the creation will fail after database record created.
  30. assert.NoError(t, os.MkdirAll(repo_model.RepoPath(user2.Name, createdRepo.Name), os.ModePerm))
  31. createdRepo2, err := CreateRepositoryDirectly(t.Context(), user2, user2, CreateRepoOptions{
  32. Name: "created-repo",
  33. }, true)
  34. assert.Nil(t, createdRepo2)
  35. assert.Error(t, err)
  36. // assert the cleanup is successful
  37. unittest.AssertNotExistsBean(t, &repo_model.Repository{OwnerName: user2.Name, Name: createdRepo.Name})
  38. exist, err = util.IsExist(repo_model.RepoPath(user2.Name, createdRepo.Name))
  39. assert.NoError(t, err)
  40. assert.False(t, exist)
  41. }