mirror of https://github.com/go-gitea/gitea
parent
1a7fc53c98
commit
72bfabfada
@ -0,0 +1,46 @@ |
||||
- |
||||
id: 1 |
||||
repo_id: 1 |
||||
index: 1 |
||||
poster_id: 1 |
||||
name: issue1 |
||||
content: content1 |
||||
is_closed: false |
||||
is_pull: false |
||||
created_unix: 946684800 |
||||
updated_unix: 978307200 |
||||
|
||||
- |
||||
id: 2 |
||||
repo_id: 1 |
||||
index: 2 |
||||
poster_id: 1 |
||||
name: issue2 |
||||
content: content2 |
||||
is_closed: false |
||||
is_pull: true |
||||
created_unix: 946684810 |
||||
updated_unix: 978307190 |
||||
|
||||
|
||||
- |
||||
id: 3 |
||||
repo_id: 1 |
||||
index: 3 |
||||
poster_id: 1 |
||||
name: issue3 |
||||
content: content4 |
||||
is_closed: false |
||||
is_pull: true |
||||
created_unix: 946684820 |
||||
updated_unix: 978307180 |
||||
|
||||
- |
||||
id: 4 |
||||
repo_id: 2 |
||||
index: 1 |
||||
poster_id: 2 |
||||
name: issue4 |
||||
content: content4 |
||||
is_closed: true |
||||
is_pull: false |
@ -0,0 +1,28 @@ |
||||
- |
||||
id: 1 |
||||
type: 0 # gitea pull request |
||||
status: 2 # mergable |
||||
issue_id: 2 |
||||
index: 1 |
||||
head_repo_id: 1 |
||||
base_repo_id: 1 |
||||
head_user_name: user1 |
||||
head_branch: branch1 |
||||
base_branch: master |
||||
merge_base: 1234567890abcdef |
||||
has_merged: true |
||||
merger_id: 2 |
||||
|
||||
- |
||||
id: 2 |
||||
type: 0 # gitea pull request |
||||
status: 1 # checking |
||||
issue_id: 3 |
||||
index: 2 |
||||
head_repo_id: 1 |
||||
base_repo_id: 1 |
||||
head_user_name: user1 |
||||
head_branch: branch2 |
||||
base_branch: master |
||||
merge_base: fedcba9876543210 |
||||
has_merged: false |
@ -0,0 +1,21 @@ |
||||
- |
||||
id: 1 |
||||
owner_id: 2 |
||||
lower_name: repo1 |
||||
name: repo1 |
||||
is_private: false |
||||
num_issues: 1 |
||||
num_closed_issues: 0 |
||||
num_pulls: 2 |
||||
num_closed_pulls: 0 |
||||
|
||||
- |
||||
id: 2 |
||||
owner_id: 2 |
||||
lower_name: repo2 |
||||
name: repo2 |
||||
is_private: true |
||||
num_issues: 1 |
||||
num_closed_issues: 1 |
||||
num_pulls: 0 |
||||
num_closed_pulls: 0 |
@ -0,0 +1,25 @@ |
||||
- # NOTE: this user (id=1) is the admin |
||||
id: 1 |
||||
lower_name: user1 |
||||
name: user1 |
||||
email: user1@example.com |
||||
passwd: password |
||||
type: 0 # individual |
||||
salt: salt |
||||
is_admin: true |
||||
avatar: avatar1 |
||||
avatar_email: user2@example.com |
||||
num_repos: 0 |
||||
|
||||
- |
||||
id: 2 |
||||
lower_name: user2 |
||||
name: user2 |
||||
email: user2@example.com |
||||
passwd: password |
||||
type: 0 # individual |
||||
salt: salt |
||||
is_admin: false |
||||
avatar: avatar2 |
||||
avatar_email: user2@example.com |
||||
num_repos: 2 |
@ -0,0 +1,251 @@ |
||||
// Copyright 2017 The Gitea Authors. All rights reserved.
|
||||
// Use of this source code is governed by a MIT-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package models |
||||
|
||||
import ( |
||||
"testing" |
||||
"time" |
||||
|
||||
"github.com/stretchr/testify/assert" |
||||
) |
||||
|
||||
// getPullRequest load a fixture pull request from the test database
|
||||
func loadFixturePullRequest(t *testing.T, id int64) *PullRequest { |
||||
sess := x.NewSession() |
||||
defer sess.Close() |
||||
|
||||
pr := &PullRequest{ID: id} |
||||
has, err := sess.Get(pr) |
||||
assert.NoError(t, err) |
||||
assert.True(t, has) |
||||
return pr |
||||
} |
||||
|
||||
func TestPullRequest_LoadAttributes(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
pr := loadFixturePullRequest(t, 1) |
||||
assert.NoError(t, pr.LoadAttributes()) |
||||
assert.NotNil(t, pr.Merger) |
||||
assert.Equal(t, pr.MergerID, pr.Merger.ID) |
||||
} |
||||
|
||||
func TestPullRequest_LoadIssue(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
pr := loadFixturePullRequest(t, 1) |
||||
assert.NoError(t, pr.LoadIssue()) |
||||
assert.NotNil(t, pr.Issue) |
||||
assert.Equal(t, int64(2), pr.Issue.ID) |
||||
} |
||||
|
||||
// TODO TestPullRequest_APIFormat
|
||||
|
||||
func TestPullRequest_GetBaseRepo(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
pr := loadFixturePullRequest(t, 1) |
||||
assert.NoError(t, pr.GetBaseRepo()) |
||||
assert.NotNil(t, pr.BaseRepo) |
||||
assert.Equal(t, pr.BaseRepoID, pr.BaseRepo.ID) |
||||
} |
||||
|
||||
func TestPullRequest_GetHeadRepo(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
pr := loadFixturePullRequest(t, 1) |
||||
assert.NoError(t, pr.GetHeadRepo()) |
||||
assert.NotNil(t, pr.HeadRepo) |
||||
assert.Equal(t, pr.HeadRepoID, pr.HeadRepo.ID) |
||||
} |
||||
|
||||
// TODO TestMerge
|
||||
|
||||
// TODO TestNewPullRequest
|
||||
|
||||
func TestPullRequestsNewest(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
prs, count, err := PullRequests(1, &PullRequestsOptions{ |
||||
Page: 1, |
||||
State: "open", |
||||
SortType: "newest", |
||||
Labels: []string{}, |
||||
}) |
||||
assert.NoError(t, err) |
||||
assert.Equal(t, int64(2), count) |
||||
assert.Len(t, prs, 2) |
||||
assert.Equal(t, int64(2), prs[0].ID) |
||||
assert.Equal(t, int64(1), prs[1].ID) |
||||
} |
||||
|
||||
func TestPullRequestsOldest(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
prs, count, err := PullRequests(1, &PullRequestsOptions{ |
||||
Page: 1, |
||||
State: "open", |
||||
SortType: "oldest", |
||||
Labels: []string{}, |
||||
}) |
||||
assert.NoError(t, err) |
||||
assert.Equal(t, int64(2), count) |
||||
assert.Len(t, prs, 2) |
||||
assert.Equal(t, int64(1), prs[0].ID) |
||||
assert.Equal(t, int64(2), prs[1].ID) |
||||
} |
||||
|
||||
func TestGetUnmergedPullRequest(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
pr, err := GetUnmergedPullRequest(1, 1, "branch2", "master") |
||||
assert.NoError(t, err) |
||||
assert.Equal(t, int64(2), pr.ID) |
||||
|
||||
pr, err = GetUnmergedPullRequest(1, 9223372036854775807, "branch1", "master") |
||||
assert.Error(t, err) |
||||
assert.True(t, IsErrPullRequestNotExist(err)) |
||||
} |
||||
|
||||
func TestGetUnmergedPullRequestsByHeadInfo(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
prs, err := GetUnmergedPullRequestsByHeadInfo(1, "branch2") |
||||
assert.NoError(t, err) |
||||
assert.Len(t, prs, 1) |
||||
for _, pr := range prs { |
||||
assert.Equal(t, int64(1), pr.HeadRepoID) |
||||
assert.Equal(t, "branch2", pr.HeadBranch) |
||||
} |
||||
} |
||||
|
||||
func TestGetUnmergedPullRequestsByBaseInfo(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
prs, err := GetUnmergedPullRequestsByBaseInfo(1, "master") |
||||
assert.NoError(t, err) |
||||
assert.Len(t, prs, 1) |
||||
pr := prs[0] |
||||
assert.Equal(t, int64(2), pr.ID) |
||||
assert.Equal(t, int64(1), pr.BaseRepoID) |
||||
assert.Equal(t, "master", pr.BaseBranch) |
||||
} |
||||
|
||||
func TestGetPullRequestByIndex(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
pr, err := GetPullRequestByIndex(1, 2) |
||||
assert.NoError(t, err) |
||||
assert.Equal(t, int64(1), pr.BaseRepoID) |
||||
assert.Equal(t, int64(2), pr.Index) |
||||
|
||||
pr, err = GetPullRequestByIndex(9223372036854775807, 9223372036854775807) |
||||
assert.Error(t, err) |
||||
assert.True(t, IsErrPullRequestNotExist(err)) |
||||
} |
||||
|
||||
func TestGetPullRequestByID(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
pr, err := GetPullRequestByID(1) |
||||
assert.NoError(t, err) |
||||
assert.Equal(t, int64(1), pr.ID) |
||||
assert.Equal(t, int64(2), pr.IssueID) |
||||
|
||||
_, err = GetPullRequestByID(9223372036854775807) |
||||
assert.Error(t, err) |
||||
assert.True(t, IsErrPullRequestNotExist(err)) |
||||
} |
||||
|
||||
func TestGetPullRequestByIssueID(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
pr, err := GetPullRequestByIssueID(2) |
||||
assert.NoError(t, err) |
||||
assert.Equal(t, int64(2), pr.IssueID) |
||||
|
||||
pr, err = GetPullRequestByIssueID(9223372036854775807) |
||||
assert.Error(t, err) |
||||
assert.True(t, IsErrPullRequestNotExist(err)) |
||||
} |
||||
|
||||
func TestPullRequest_Update(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
pr := &PullRequest{ |
||||
ID: 1, |
||||
IssueID: 100, |
||||
BaseBranch: "baseBranch", |
||||
HeadBranch: "headBranch", |
||||
} |
||||
pr.Update() |
||||
|
||||
sess := x.NewSession() |
||||
defer sess.Close() |
||||
pr = &PullRequest{ID: 1} |
||||
has, err := sess.Get(pr) |
||||
assert.NoError(t, err) |
||||
assert.True(t, has) |
||||
assert.Equal(t, int64(100), pr.IssueID) |
||||
assert.Equal(t, "baseBranch", pr.BaseBranch) |
||||
assert.Equal(t, "headBranch", pr.HeadBranch) |
||||
} |
||||
|
||||
func TestPullRequest_UpdateCols(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
pr := &PullRequest{ |
||||
ID: 1, |
||||
IssueID: int64(100), |
||||
BaseBranch: "baseBranch", |
||||
HeadBranch: "headBranch", |
||||
} |
||||
pr.UpdateCols("issue_id", "head_branch") |
||||
|
||||
sess := x.NewSession() |
||||
defer sess.Close() |
||||
pr = &PullRequest{ID: 1} |
||||
has, err := sess.Get(pr) |
||||
assert.NoError(t, err) |
||||
assert.True(t, has) |
||||
assert.Equal(t, int64(100), pr.IssueID) |
||||
assert.Equal(t, "master", pr.BaseBranch) |
||||
assert.Equal(t, "headBranch", pr.HeadBranch) |
||||
} |
||||
|
||||
// TODO TestPullRequest_UpdatePatch
|
||||
|
||||
// TODO TestPullRequest_PushToBaseRepo
|
||||
|
||||
func TestPullRequest_AddToTaskQueue(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
|
||||
pr := loadFixturePullRequest(t, 1) |
||||
pr.AddToTaskQueue() |
||||
|
||||
// briefly sleep so that background threads have time to run
|
||||
time.Sleep(time.Millisecond) |
||||
|
||||
assert.True(t, pullRequestQueue.Exist(pr.ID)) |
||||
pr = loadFixturePullRequest(t, 1) |
||||
assert.Equal(t, PullRequestStatusChecking, pr.Status) |
||||
} |
||||
|
||||
func TestPullRequestList_LoadAttributes(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
|
||||
prs := []*PullRequest{ |
||||
loadFixturePullRequest(t, 1), |
||||
loadFixturePullRequest(t, 2), |
||||
} |
||||
assert.NoError(t, PullRequestList(prs).LoadAttributes()) |
||||
for _, pr := range prs { |
||||
assert.NotNil(t, pr.Issue) |
||||
assert.Equal(t, pr.IssueID, pr.Issue.ID) |
||||
} |
||||
} |
||||
|
||||
// TODO TestAddTestPullRequestTask
|
||||
|
||||
func TestChangeUsernameInPullRequests(t *testing.T) { |
||||
assert.NoError(t, PrepareTestDatabase()) |
||||
const newUsername = "newusername" |
||||
assert.NoError(t, ChangeUsernameInPullRequests("user1", newUsername)) |
||||
sess := x.NewSession() |
||||
defer sess.Close() |
||||
|
||||
prs := make([]*PullRequest, 0, 10) |
||||
assert.NoError(t, sess.Where("head_user_name = ?", newUsername).Find(&prs)) |
||||
assert.Len(t, prs, 2) |
||||
for _, pr := range prs { |
||||
assert.Equal(t, newUsername, pr.HeadUserName) |
||||
} |
||||
} |
Loading…
Reference in new issue