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
|
is_deleted: false
|
||||||
deleted_by_id: 0
|
deleted_by_id: 0
|
||||||
deleted_unix: 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
|
return nil, nil
|
||||||
}
|
}
|
||||||
// test if we are lucky
|
// 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 {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ import (
|
|||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
repo_model "code.gitea.io/gitea/models/repo"
|
repo_model "code.gitea.io/gitea/models/repo"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
"code.gitea.io/gitea/modules/git"
|
||||||
"code.gitea.io/gitea/modules/gitrepo"
|
"code.gitea.io/gitea/modules/gitrepo"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
@ -144,185 +145,274 @@ func TestCompareRouters(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Test_ParseComparePathParams(t *testing.T) {
|
func Test_ParseComparePathParams(t *testing.T) {
|
||||||
baseRepo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
||||||
assert.NotNil(t, baseRepo)
|
|
||||||
assert.NoError(t, baseRepo.LoadOwner(db.DefaultContext))
|
repo1 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
|
||||||
baseGitRepo, err := gitrepo.OpenRepository(context.Background(), baseRepo)
|
assert.NotNil(t, repo1)
|
||||||
|
assert.NoError(t, repo1.LoadOwner(db.DefaultContext))
|
||||||
|
gitRepo1, err := gitrepo.OpenRepository(context.Background(), repo1)
|
||||||
assert.NoError(t, err)
|
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 {
|
kases := []struct {
|
||||||
|
repoName string
|
||||||
|
hasClose bool
|
||||||
router string
|
router string
|
||||||
compareInfo *CompareInfo
|
compareInfo *CompareInfo
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
router: "main...develop",
|
repoName: "repo1",
|
||||||
|
router: "master...branch2",
|
||||||
compareInfo: &CompareInfo{
|
compareInfo: &CompareInfo{
|
||||||
CompareRouter: &CompareRouter{
|
CompareRouter: &CompareRouter{
|
||||||
BaseOriRef: "main",
|
BaseOriRef: "master",
|
||||||
HeadOriRef: "develop",
|
BaseFullRef: git.RefNameFromBranch("master"),
|
||||||
|
HeadOriRef: "branch2",
|
||||||
|
HeadFullRef: git.RefNameFromBranch("branch2"),
|
||||||
|
HeadOwnerName: repo1.OwnerName,
|
||||||
|
HeadRepoName: repo1.Name,
|
||||||
DotTimes: 3,
|
DotTimes: 3,
|
||||||
},
|
},
|
||||||
BaseRepo: baseRepo,
|
BaseRepo: repo1,
|
||||||
HeadUser: baseRepo.Owner,
|
HeadUser: repo1.Owner,
|
||||||
HeadRepo: baseRepo,
|
HeadRepo: repo1,
|
||||||
HeadGitRepo: baseGitRepo,
|
HeadGitRepo: gitRepo1,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
router: "main..develop",
|
repoName: "repo1",
|
||||||
|
router: "DefaultBranch..branch2",
|
||||||
compareInfo: &CompareInfo{
|
compareInfo: &CompareInfo{
|
||||||
CompareRouter: &CompareRouter{
|
CompareRouter: &CompareRouter{
|
||||||
BaseOriRef: "main",
|
BaseOriRef: "DefaultBranch",
|
||||||
HeadOriRef: "develop",
|
BaseFullRef: git.RefNameFromBranch("DefaultBranch"),
|
||||||
|
HeadOriRef: "branch2",
|
||||||
|
HeadFullRef: git.RefNameFromBranch("branch2"),
|
||||||
|
HeadOwnerName: repo1.Owner.Name,
|
||||||
|
HeadRepoName: repo1.Name,
|
||||||
DotTimes: 2,
|
DotTimes: 2,
|
||||||
},
|
},
|
||||||
BaseRepo: baseRepo,
|
BaseRepo: repo1,
|
||||||
HeadUser: baseRepo.Owner,
|
HeadUser: repo1.Owner,
|
||||||
HeadRepo: baseRepo,
|
HeadRepo: repo1,
|
||||||
HeadGitRepo: baseGitRepo,
|
HeadGitRepo: gitRepo1,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
router: "main^...develop",
|
repoName: "repo1",
|
||||||
|
router: "DefaultBranch^...branch2",
|
||||||
compareInfo: &CompareInfo{
|
compareInfo: &CompareInfo{
|
||||||
CompareRouter: &CompareRouter{
|
CompareRouter: &CompareRouter{
|
||||||
BaseOriRef: "main",
|
BaseOriRef: "DefaultBranch",
|
||||||
HeadOriRef: "develop",
|
BaseFullRef: git.RefNameFromBranch("DefaultBranch"),
|
||||||
|
HeadOriRef: "branch2",
|
||||||
|
HeadFullRef: git.RefNameFromBranch("branch2"),
|
||||||
|
HeadOwnerName: repo1.Owner.Name,
|
||||||
|
HeadRepoName: repo1.Name,
|
||||||
CaretTimes: 1,
|
CaretTimes: 1,
|
||||||
DotTimes: 3,
|
DotTimes: 3,
|
||||||
},
|
},
|
||||||
BaseRepo: baseRepo,
|
BaseRepo: repo1,
|
||||||
HeadUser: baseRepo.Owner,
|
HeadUser: repo1.Owner,
|
||||||
HeadRepo: baseRepo,
|
HeadRepo: repo1,
|
||||||
HeadGitRepo: baseGitRepo,
|
HeadGitRepo: gitRepo1,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
router: "main^^^^^...develop",
|
repoName: "repo1",
|
||||||
|
router: "branch2",
|
||||||
compareInfo: &CompareInfo{
|
compareInfo: &CompareInfo{
|
||||||
CompareRouter: &CompareRouter{
|
CompareRouter: &CompareRouter{
|
||||||
BaseOriRef: "main",
|
BaseOriRef: repo1.DefaultBranch,
|
||||||
HeadOriRef: "develop",
|
BaseFullRef: git.RefNameFromBranch(repo1.DefaultBranch),
|
||||||
CaretTimes: 5,
|
HeadOriRef: "branch2",
|
||||||
|
HeadOwnerName: repo1.Owner.Name,
|
||||||
|
HeadRepoName: repo1.Name,
|
||||||
|
HeadFullRef: git.RefNameFromBranch("branch2"),
|
||||||
DotTimes: 3,
|
DotTimes: 3,
|
||||||
},
|
},
|
||||||
BaseRepo: baseRepo,
|
BaseRepo: repo1,
|
||||||
HeadUser: baseRepo.Owner,
|
HeadUser: repo1.Owner,
|
||||||
HeadRepo: baseRepo,
|
HeadRepo: repo1,
|
||||||
HeadGitRepo: baseGitRepo,
|
HeadGitRepo: gitRepo1,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
router: "develop",
|
repoName: "repo10",
|
||||||
|
hasClose: true,
|
||||||
|
router: "user13/repo11:develop",
|
||||||
compareInfo: &CompareInfo{
|
compareInfo: &CompareInfo{
|
||||||
CompareRouter: &CompareRouter{
|
CompareRouter: &CompareRouter{
|
||||||
BaseOriRef: baseRepo.DefaultBranch,
|
BaseOriRef: repo10.DefaultBranch,
|
||||||
|
BaseFullRef: git.RefNameFromBranch(repo10.DefaultBranch),
|
||||||
|
HeadOwnerName: "user13",
|
||||||
|
HeadRepoName: "repo11",
|
||||||
HeadOriRef: "develop",
|
HeadOriRef: "develop",
|
||||||
|
HeadFullRef: git.RefNameFromBranch("develop"),
|
||||||
DotTimes: 3,
|
DotTimes: 3,
|
||||||
},
|
},
|
||||||
BaseRepo: baseRepo,
|
BaseRepo: repo10,
|
||||||
HeadUser: baseRepo.Owner,
|
HeadUser: repo11.Owner,
|
||||||
HeadRepo: baseRepo,
|
HeadRepo: repo11,
|
||||||
HeadGitRepo: baseGitRepo,
|
HeadGitRepo: gitRepo11,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
router: "lunny/forked_repo:develop",
|
repoName: "repo10",
|
||||||
|
hasClose: true,
|
||||||
|
router: "master...user13/repo11:develop",
|
||||||
compareInfo: &CompareInfo{
|
compareInfo: &CompareInfo{
|
||||||
CompareRouter: &CompareRouter{
|
CompareRouter: &CompareRouter{
|
||||||
BaseOriRef: baseRepo.DefaultBranch,
|
BaseOriRef: "master",
|
||||||
HeadOwnerName: "lunny",
|
BaseFullRef: git.RefNameFromBranch("master"),
|
||||||
HeadRepoName: "forked_repo",
|
HeadOwnerName: "user13",
|
||||||
|
HeadRepoName: "repo11",
|
||||||
HeadOriRef: "develop",
|
HeadOriRef: "develop",
|
||||||
|
HeadFullRef: git.RefNameFromBranch("develop"),
|
||||||
DotTimes: 3,
|
DotTimes: 3,
|
||||||
},
|
},
|
||||||
BaseRepo: baseRepo,
|
BaseRepo: repo10,
|
||||||
|
HeadUser: repo11.Owner,
|
||||||
|
HeadRepo: repo11,
|
||||||
|
HeadGitRepo: gitRepo11,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
router: "main...lunny/forked_repo:develop",
|
repoName: "repo10",
|
||||||
|
hasClose: true,
|
||||||
|
router: "DefaultBranch^...user13/repo11:develop",
|
||||||
compareInfo: &CompareInfo{
|
compareInfo: &CompareInfo{
|
||||||
CompareRouter: &CompareRouter{
|
CompareRouter: &CompareRouter{
|
||||||
BaseOriRef: "main",
|
BaseOriRef: "DefaultBranch",
|
||||||
HeadOwnerName: "lunny",
|
BaseFullRef: git.RefNameFromBranch("DefaultBranch"),
|
||||||
HeadRepoName: "forked_repo",
|
HeadOwnerName: "user13",
|
||||||
HeadOriRef: "develop",
|
HeadRepoName: "repo11",
|
||||||
DotTimes: 3,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
router: "main...lunny/forked_repo:develop",
|
|
||||||
compareInfo: &CompareInfo{
|
|
||||||
CompareRouter: &CompareRouter{
|
|
||||||
BaseOriRef: "main",
|
|
||||||
HeadOwnerName: "lunny",
|
|
||||||
HeadRepoName: "forked_repo",
|
|
||||||
HeadOriRef: "develop",
|
|
||||||
DotTimes: 3,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
router: "main^...lunny/forked_repo:develop",
|
|
||||||
compareInfo: &CompareInfo{
|
|
||||||
CompareRouter: &CompareRouter{
|
|
||||||
BaseOriRef: "main",
|
|
||||||
HeadOwnerName: "lunny",
|
|
||||||
HeadRepoName: "forked_repo",
|
|
||||||
HeadOriRef: "develop",
|
HeadOriRef: "develop",
|
||||||
|
HeadFullRef: git.RefNameFromBranch("develop"),
|
||||||
DotTimes: 3,
|
DotTimes: 3,
|
||||||
CaretTimes: 1,
|
CaretTimes: 1,
|
||||||
},
|
},
|
||||||
|
BaseRepo: repo10,
|
||||||
|
HeadUser: repo11.Owner,
|
||||||
|
HeadRepo: repo11,
|
||||||
|
HeadGitRepo: gitRepo11,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
router: "v1.0...v1.1",
|
repoName: "repo1",
|
||||||
|
router: "master...v1.1",
|
||||||
compareInfo: &CompareInfo{
|
compareInfo: &CompareInfo{
|
||||||
CompareRouter: &CompareRouter{
|
CompareRouter: &CompareRouter{
|
||||||
BaseOriRef: "v1.0",
|
BaseOriRef: "master",
|
||||||
|
BaseFullRef: git.RefNameFromBranch("master"),
|
||||||
|
HeadOwnerName: repo1.Owner.Name,
|
||||||
|
HeadRepoName: repo1.Name,
|
||||||
HeadOriRef: "v1.1",
|
HeadOriRef: "v1.1",
|
||||||
|
HeadFullRef: git.RefNameFromTag("v1.1"),
|
||||||
DotTimes: 3,
|
DotTimes: 3,
|
||||||
},
|
},
|
||||||
|
BaseRepo: repo1,
|
||||||
|
HeadUser: repo1.Owner,
|
||||||
|
HeadRepo: repo1,
|
||||||
|
HeadGitRepo: gitRepo1,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
router: "teabot-patch-1...v0.0.1",
|
repoName: "repo10",
|
||||||
|
hasClose: true,
|
||||||
|
router: "user13:develop",
|
||||||
compareInfo: &CompareInfo{
|
compareInfo: &CompareInfo{
|
||||||
CompareRouter: &CompareRouter{
|
CompareRouter: &CompareRouter{
|
||||||
BaseOriRef: "teabot-patch-1",
|
BaseOriRef: repo10.DefaultBranch,
|
||||||
HeadOriRef: "v0.0.1",
|
BaseFullRef: git.RefNameFromBranch(repo10.DefaultBranch),
|
||||||
|
HeadOwnerName: "user13",
|
||||||
|
HeadOriRef: "develop",
|
||||||
|
HeadFullRef: git.RefNameFromBranch("develop"),
|
||||||
DotTimes: 3,
|
DotTimes: 3,
|
||||||
},
|
},
|
||||||
|
BaseRepo: repo10,
|
||||||
|
HeadUser: repo11.Owner,
|
||||||
|
HeadRepo: repo11,
|
||||||
|
HeadGitRepo: gitRepo11,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
router: "teabot:feature1",
|
repoName: "repo1",
|
||||||
|
router: "65f1bf27bc3bf70f64657658635e66094edbcb4d...90c1019714259b24fb81711d4416ac0f18667dfa",
|
||||||
compareInfo: &CompareInfo{
|
compareInfo: &CompareInfo{
|
||||||
CompareRouter: &CompareRouter{
|
CompareRouter: &CompareRouter{
|
||||||
HeadOwnerName: "teabot",
|
BaseOriRef: "65f1bf27bc3bf70f64657658635e66094edbcb4d",
|
||||||
HeadOriRef: "feature1",
|
BaseFullRef: git.RefName("65f1bf27bc3bf70f64657658635e66094edbcb4d"),
|
||||||
|
HeadOwnerName: repo1.Owner.Name,
|
||||||
|
HeadRepoName: repo1.Name,
|
||||||
|
HeadOriRef: "90c1019714259b24fb81711d4416ac0f18667dfa",
|
||||||
|
HeadFullRef: git.RefName("90c1019714259b24fb81711d4416ac0f18667dfa"),
|
||||||
DotTimes: 3,
|
DotTimes: 3,
|
||||||
},
|
},
|
||||||
|
BaseRepo: repo1,
|
||||||
|
HeadUser: repo1.Owner,
|
||||||
|
HeadRepo: repo1,
|
||||||
|
HeadGitRepo: gitRepo1,
|
||||||
|
IsBaseCommit: true,
|
||||||
|
IsHeadCommit: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
router: "8eb19a5ae19abae15c0666d4ab98906139a7f439...283c030497b455ecfa759d4649f9f8b45158742e",
|
repoName: "repo1",
|
||||||
|
router: "5c050d3b6d2db231ab1f64e324f1b6b9a0b181c2^...985f0301dba5e7b34be866819cd15ad3d8f508ee",
|
||||||
compareInfo: &CompareInfo{
|
compareInfo: &CompareInfo{
|
||||||
CompareRouter: &CompareRouter{
|
CompareRouter: &CompareRouter{
|
||||||
BaseOriRef: "8eb19a5ae19abae15c0666d4ab98906139a7f439",
|
BaseOriRef: "5c050d3b6d2db231ab1f64e324f1b6b9a0b181c2",
|
||||||
HeadOriRef: "283c030497b455ecfa759d4649f9f8b45158742e",
|
BaseFullRef: git.RefName("5c050d3b6d2db231ab1f64e324f1b6b9a0b181c2"),
|
||||||
|
HeadOwnerName: repo1.Owner.Name,
|
||||||
|
HeadRepoName: repo1.Name,
|
||||||
|
HeadOriRef: "985f0301dba5e7b34be866819cd15ad3d8f508ee",
|
||||||
|
HeadFullRef: git.RefName("985f0301dba5e7b34be866819cd15ad3d8f508ee"),
|
||||||
DotTimes: 3,
|
DotTimes: 3,
|
||||||
|
CaretTimes: 1,
|
||||||
},
|
},
|
||||||
|
BaseRepo: repo1,
|
||||||
|
HeadUser: repo1.Owner,
|
||||||
|
HeadRepo: repo1,
|
||||||
|
HeadGitRepo: gitRepo1,
|
||||||
|
IsBaseCommit: true,
|
||||||
|
IsHeadCommit: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, kase := range kases {
|
for _, kase := range kases {
|
||||||
t.Run(kase.router, func(t *testing.T) {
|
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)
|
r, err := ParseComparePathParams(context.Background(), kase.router, baseRepo, baseGitRepo)
|
||||||
assert.NoError(t, err)
|
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)
|
assert.EqualValues(t, kase.compareInfo, r)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user