mirror of
https://github.com/go-gitea/gitea.git
synced 2025-07-27 15:54:36 +02:00
Fix test
This commit is contained in:
parent
d08942e300
commit
33286791a2
@ -93,3 +93,41 @@
|
||||
is_deleted: false
|
||||
deleted_by_id: 0
|
||||
deleted_unix: 0
|
||||
|
||||
-
|
||||
id: 16
|
||||
repo_id: 1
|
||||
name: 'DefaultBranch'
|
||||
commit_id: '90c1019714259b24fb81711d4416ac0f18667dfa'
|
||||
commit_message: 'add license'
|
||||
commit_time: 1709259547
|
||||
pusher_id: 1
|
||||
is_deleted: false
|
||||
|
||||
-
|
||||
id: 17
|
||||
repo_id: 1
|
||||
name: 'develop'
|
||||
commit_id: '65f1bf27bc3bf70f64657658635e66094edbcb4d'
|
||||
commit_message: 'first commit'
|
||||
commit_time: 978307100
|
||||
pusher_id: 1
|
||||
|
||||
-
|
||||
id: 18
|
||||
repo_id: 11
|
||||
name: 'develop'
|
||||
commit_id: '65f1bf27bc3bf70f64657658635e66094edbcb4d'
|
||||
commit_message: 'Initial commit'
|
||||
commit_time: 1489956479
|
||||
pusher_id: 1
|
||||
|
||||
-
|
||||
id: 19
|
||||
repo_id: 10
|
||||
name: 'DefaultBranch'
|
||||
commit_id: '65f1bf27bc3bf70f64657658635e66094edbcb4d'
|
||||
commit_message: 'Initial commit'
|
||||
commit_time: 1489956479
|
||||
pusher_id: 1
|
||||
is_deleted: false
|
@ -169,7 +169,7 @@ func findHeadRepoFromRootBase(ctx context.Context, baseRepo *repo_model.Reposito
|
||||
return nil, nil
|
||||
}
|
||||
// test if we are lucky
|
||||
repo, err := repo_model.GetUserFork(ctx, headUserID, baseRepo.ID)
|
||||
repo, err := repo_model.GetUserFork(ctx, baseRepo.ID, headUserID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ import (
|
||||
"code.gitea.io/gitea/models/db"
|
||||
repo_model "code.gitea.io/gitea/models/repo"
|
||||
"code.gitea.io/gitea/models/unittest"
|
||||
"code.gitea.io/gitea/modules/git"
|
||||
"code.gitea.io/gitea/modules/gitrepo"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
@ -144,185 +145,274 @@ func TestCompareRouters(t *testing.T) {
|
||||
}
|
||||
|
||||
func Test_ParseComparePathParams(t *testing.T) {
|
||||
baseRepo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
|
||||
assert.NotNil(t, baseRepo)
|
||||
assert.NoError(t, baseRepo.LoadOwner(db.DefaultContext))
|
||||
baseGitRepo, err := gitrepo.OpenRepository(context.Background(), baseRepo)
|
||||
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||
|
||||
repo1 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
|
||||
assert.NotNil(t, repo1)
|
||||
assert.NoError(t, repo1.LoadOwner(db.DefaultContext))
|
||||
gitRepo1, err := gitrepo.OpenRepository(context.Background(), repo1)
|
||||
assert.NoError(t, err)
|
||||
defer baseGitRepo.Close()
|
||||
defer gitRepo1.Close()
|
||||
|
||||
repo10 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 10})
|
||||
assert.NotNil(t, repo10)
|
||||
assert.NoError(t, repo10.LoadOwner(db.DefaultContext))
|
||||
gitRepo10, err := gitrepo.OpenRepository(context.Background(), repo10)
|
||||
assert.NoError(t, err)
|
||||
defer gitRepo10.Close()
|
||||
|
||||
repo11 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 11})
|
||||
assert.NotNil(t, repo11)
|
||||
assert.NoError(t, repo11.LoadOwner(db.DefaultContext))
|
||||
gitRepo11, err := gitrepo.OpenRepository(context.Background(), repo11)
|
||||
assert.NoError(t, err)
|
||||
defer gitRepo11.Close()
|
||||
assert.True(t, repo11.IsFork) // repo11 is a fork of repo10
|
||||
|
||||
kases := []struct {
|
||||
repoName string
|
||||
hasClose bool
|
||||
router string
|
||||
compareInfo *CompareInfo
|
||||
}{
|
||||
{
|
||||
router: "main...develop",
|
||||
repoName: "repo1",
|
||||
router: "master...branch2",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: "main",
|
||||
HeadOriRef: "develop",
|
||||
DotTimes: 3,
|
||||
},
|
||||
BaseRepo: baseRepo,
|
||||
HeadUser: baseRepo.Owner,
|
||||
HeadRepo: baseRepo,
|
||||
HeadGitRepo: baseGitRepo,
|
||||
},
|
||||
},
|
||||
{
|
||||
router: "main..develop",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: "main",
|
||||
HeadOriRef: "develop",
|
||||
DotTimes: 2,
|
||||
},
|
||||
BaseRepo: baseRepo,
|
||||
HeadUser: baseRepo.Owner,
|
||||
HeadRepo: baseRepo,
|
||||
HeadGitRepo: baseGitRepo,
|
||||
},
|
||||
},
|
||||
{
|
||||
router: "main^...develop",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: "main",
|
||||
HeadOriRef: "develop",
|
||||
CaretTimes: 1,
|
||||
DotTimes: 3,
|
||||
},
|
||||
BaseRepo: baseRepo,
|
||||
HeadUser: baseRepo.Owner,
|
||||
HeadRepo: baseRepo,
|
||||
HeadGitRepo: baseGitRepo,
|
||||
},
|
||||
},
|
||||
{
|
||||
router: "main^^^^^...develop",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: "main",
|
||||
HeadOriRef: "develop",
|
||||
CaretTimes: 5,
|
||||
DotTimes: 3,
|
||||
},
|
||||
BaseRepo: baseRepo,
|
||||
HeadUser: baseRepo.Owner,
|
||||
HeadRepo: baseRepo,
|
||||
HeadGitRepo: baseGitRepo,
|
||||
},
|
||||
},
|
||||
{
|
||||
router: "develop",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: baseRepo.DefaultBranch,
|
||||
HeadOriRef: "develop",
|
||||
DotTimes: 3,
|
||||
},
|
||||
BaseRepo: baseRepo,
|
||||
HeadUser: baseRepo.Owner,
|
||||
HeadRepo: baseRepo,
|
||||
HeadGitRepo: baseGitRepo,
|
||||
},
|
||||
},
|
||||
{
|
||||
router: "lunny/forked_repo:develop",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: baseRepo.DefaultBranch,
|
||||
HeadOwnerName: "lunny",
|
||||
HeadRepoName: "forked_repo",
|
||||
HeadOriRef: "develop",
|
||||
BaseOriRef: "master",
|
||||
BaseFullRef: git.RefNameFromBranch("master"),
|
||||
HeadOriRef: "branch2",
|
||||
HeadFullRef: git.RefNameFromBranch("branch2"),
|
||||
HeadOwnerName: repo1.OwnerName,
|
||||
HeadRepoName: repo1.Name,
|
||||
DotTimes: 3,
|
||||
},
|
||||
BaseRepo: baseRepo,
|
||||
BaseRepo: repo1,
|
||||
HeadUser: repo1.Owner,
|
||||
HeadRepo: repo1,
|
||||
HeadGitRepo: gitRepo1,
|
||||
},
|
||||
},
|
||||
{
|
||||
router: "main...lunny/forked_repo:develop",
|
||||
repoName: "repo1",
|
||||
router: "DefaultBranch..branch2",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: "main",
|
||||
HeadOwnerName: "lunny",
|
||||
HeadRepoName: "forked_repo",
|
||||
HeadOriRef: "develop",
|
||||
BaseOriRef: "DefaultBranch",
|
||||
BaseFullRef: git.RefNameFromBranch("DefaultBranch"),
|
||||
HeadOriRef: "branch2",
|
||||
HeadFullRef: git.RefNameFromBranch("branch2"),
|
||||
HeadOwnerName: repo1.Owner.Name,
|
||||
HeadRepoName: repo1.Name,
|
||||
DotTimes: 2,
|
||||
},
|
||||
BaseRepo: repo1,
|
||||
HeadUser: repo1.Owner,
|
||||
HeadRepo: repo1,
|
||||
HeadGitRepo: gitRepo1,
|
||||
},
|
||||
},
|
||||
{
|
||||
repoName: "repo1",
|
||||
router: "DefaultBranch^...branch2",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: "DefaultBranch",
|
||||
BaseFullRef: git.RefNameFromBranch("DefaultBranch"),
|
||||
HeadOriRef: "branch2",
|
||||
HeadFullRef: git.RefNameFromBranch("branch2"),
|
||||
HeadOwnerName: repo1.Owner.Name,
|
||||
HeadRepoName: repo1.Name,
|
||||
CaretTimes: 1,
|
||||
DotTimes: 3,
|
||||
},
|
||||
BaseRepo: repo1,
|
||||
HeadUser: repo1.Owner,
|
||||
HeadRepo: repo1,
|
||||
HeadGitRepo: gitRepo1,
|
||||
},
|
||||
},
|
||||
{
|
||||
router: "main...lunny/forked_repo:develop",
|
||||
repoName: "repo1",
|
||||
router: "branch2",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: "main",
|
||||
HeadOwnerName: "lunny",
|
||||
HeadRepoName: "forked_repo",
|
||||
HeadOriRef: "develop",
|
||||
BaseOriRef: repo1.DefaultBranch,
|
||||
BaseFullRef: git.RefNameFromBranch(repo1.DefaultBranch),
|
||||
HeadOriRef: "branch2",
|
||||
HeadOwnerName: repo1.Owner.Name,
|
||||
HeadRepoName: repo1.Name,
|
||||
HeadFullRef: git.RefNameFromBranch("branch2"),
|
||||
DotTimes: 3,
|
||||
},
|
||||
BaseRepo: repo1,
|
||||
HeadUser: repo1.Owner,
|
||||
HeadRepo: repo1,
|
||||
HeadGitRepo: gitRepo1,
|
||||
},
|
||||
},
|
||||
{
|
||||
router: "main^...lunny/forked_repo:develop",
|
||||
repoName: "repo10",
|
||||
hasClose: true,
|
||||
router: "user13/repo11:develop",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: "main",
|
||||
HeadOwnerName: "lunny",
|
||||
HeadRepoName: "forked_repo",
|
||||
BaseOriRef: repo10.DefaultBranch,
|
||||
BaseFullRef: git.RefNameFromBranch(repo10.DefaultBranch),
|
||||
HeadOwnerName: "user13",
|
||||
HeadRepoName: "repo11",
|
||||
HeadOriRef: "develop",
|
||||
HeadFullRef: git.RefNameFromBranch("develop"),
|
||||
DotTimes: 3,
|
||||
},
|
||||
BaseRepo: repo10,
|
||||
HeadUser: repo11.Owner,
|
||||
HeadRepo: repo11,
|
||||
HeadGitRepo: gitRepo11,
|
||||
},
|
||||
},
|
||||
{
|
||||
repoName: "repo10",
|
||||
hasClose: true,
|
||||
router: "master...user13/repo11:develop",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: "master",
|
||||
BaseFullRef: git.RefNameFromBranch("master"),
|
||||
HeadOwnerName: "user13",
|
||||
HeadRepoName: "repo11",
|
||||
HeadOriRef: "develop",
|
||||
HeadFullRef: git.RefNameFromBranch("develop"),
|
||||
DotTimes: 3,
|
||||
},
|
||||
BaseRepo: repo10,
|
||||
HeadUser: repo11.Owner,
|
||||
HeadRepo: repo11,
|
||||
HeadGitRepo: gitRepo11,
|
||||
},
|
||||
},
|
||||
{
|
||||
repoName: "repo10",
|
||||
hasClose: true,
|
||||
router: "DefaultBranch^...user13/repo11:develop",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: "DefaultBranch",
|
||||
BaseFullRef: git.RefNameFromBranch("DefaultBranch"),
|
||||
HeadOwnerName: "user13",
|
||||
HeadRepoName: "repo11",
|
||||
HeadOriRef: "develop",
|
||||
HeadFullRef: git.RefNameFromBranch("develop"),
|
||||
DotTimes: 3,
|
||||
CaretTimes: 1,
|
||||
},
|
||||
BaseRepo: repo10,
|
||||
HeadUser: repo11.Owner,
|
||||
HeadRepo: repo11,
|
||||
HeadGitRepo: gitRepo11,
|
||||
},
|
||||
},
|
||||
{
|
||||
router: "v1.0...v1.1",
|
||||
repoName: "repo1",
|
||||
router: "master...v1.1",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: "v1.0",
|
||||
HeadOriRef: "v1.1",
|
||||
DotTimes: 3,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
router: "teabot-patch-1...v0.0.1",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: "teabot-patch-1",
|
||||
HeadOriRef: "v0.0.1",
|
||||
DotTimes: 3,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
router: "teabot:feature1",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
HeadOwnerName: "teabot",
|
||||
HeadOriRef: "feature1",
|
||||
BaseOriRef: "master",
|
||||
BaseFullRef: git.RefNameFromBranch("master"),
|
||||
HeadOwnerName: repo1.Owner.Name,
|
||||
HeadRepoName: repo1.Name,
|
||||
HeadOriRef: "v1.1",
|
||||
HeadFullRef: git.RefNameFromTag("v1.1"),
|
||||
DotTimes: 3,
|
||||
},
|
||||
BaseRepo: repo1,
|
||||
HeadUser: repo1.Owner,
|
||||
HeadRepo: repo1,
|
||||
HeadGitRepo: gitRepo1,
|
||||
},
|
||||
},
|
||||
{
|
||||
router: "8eb19a5ae19abae15c0666d4ab98906139a7f439...283c030497b455ecfa759d4649f9f8b45158742e",
|
||||
repoName: "repo10",
|
||||
hasClose: true,
|
||||
router: "user13:develop",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: "8eb19a5ae19abae15c0666d4ab98906139a7f439",
|
||||
HeadOriRef: "283c030497b455ecfa759d4649f9f8b45158742e",
|
||||
DotTimes: 3,
|
||||
BaseOriRef: repo10.DefaultBranch,
|
||||
BaseFullRef: git.RefNameFromBranch(repo10.DefaultBranch),
|
||||
HeadOwnerName: "user13",
|
||||
HeadOriRef: "develop",
|
||||
HeadFullRef: git.RefNameFromBranch("develop"),
|
||||
DotTimes: 3,
|
||||
},
|
||||
BaseRepo: repo10,
|
||||
HeadUser: repo11.Owner,
|
||||
HeadRepo: repo11,
|
||||
HeadGitRepo: gitRepo11,
|
||||
},
|
||||
},
|
||||
{
|
||||
repoName: "repo1",
|
||||
router: "65f1bf27bc3bf70f64657658635e66094edbcb4d...90c1019714259b24fb81711d4416ac0f18667dfa",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: "65f1bf27bc3bf70f64657658635e66094edbcb4d",
|
||||
BaseFullRef: git.RefName("65f1bf27bc3bf70f64657658635e66094edbcb4d"),
|
||||
HeadOwnerName: repo1.Owner.Name,
|
||||
HeadRepoName: repo1.Name,
|
||||
HeadOriRef: "90c1019714259b24fb81711d4416ac0f18667dfa",
|
||||
HeadFullRef: git.RefName("90c1019714259b24fb81711d4416ac0f18667dfa"),
|
||||
DotTimes: 3,
|
||||
},
|
||||
BaseRepo: repo1,
|
||||
HeadUser: repo1.Owner,
|
||||
HeadRepo: repo1,
|
||||
HeadGitRepo: gitRepo1,
|
||||
IsBaseCommit: true,
|
||||
IsHeadCommit: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
repoName: "repo1",
|
||||
router: "5c050d3b6d2db231ab1f64e324f1b6b9a0b181c2^...985f0301dba5e7b34be866819cd15ad3d8f508ee",
|
||||
compareInfo: &CompareInfo{
|
||||
CompareRouter: &CompareRouter{
|
||||
BaseOriRef: "5c050d3b6d2db231ab1f64e324f1b6b9a0b181c2",
|
||||
BaseFullRef: git.RefName("5c050d3b6d2db231ab1f64e324f1b6b9a0b181c2"),
|
||||
HeadOwnerName: repo1.Owner.Name,
|
||||
HeadRepoName: repo1.Name,
|
||||
HeadOriRef: "985f0301dba5e7b34be866819cd15ad3d8f508ee",
|
||||
HeadFullRef: git.RefName("985f0301dba5e7b34be866819cd15ad3d8f508ee"),
|
||||
DotTimes: 3,
|
||||
CaretTimes: 1,
|
||||
},
|
||||
BaseRepo: repo1,
|
||||
HeadUser: repo1.Owner,
|
||||
HeadRepo: repo1,
|
||||
HeadGitRepo: gitRepo1,
|
||||
IsBaseCommit: true,
|
||||
IsHeadCommit: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, kase := range kases {
|
||||
t.Run(kase.router, func(t *testing.T) {
|
||||
var baseRepo *repo_model.Repository
|
||||
var baseGitRepo *git.Repository
|
||||
if kase.repoName == "repo1" {
|
||||
baseRepo = repo1
|
||||
baseGitRepo = gitRepo1
|
||||
} else if kase.repoName == "repo10" {
|
||||
baseRepo = repo10
|
||||
baseGitRepo = gitRepo10
|
||||
}
|
||||
r, err := ParseComparePathParams(context.Background(), kase.router, baseRepo, baseGitRepo)
|
||||
assert.NoError(t, err)
|
||||
if kase.hasClose {
|
||||
assert.NotNil(t, r.close)
|
||||
r.close = nil // close is a function, so we can't compare it
|
||||
}
|
||||
assert.EqualValues(t, kase.compareInfo, r)
|
||||
})
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user