Skip to content

Commit 1dfa26e

Browse files
authored
Move milestone to models/issues/ (#19278)
* Move milestone to models/issues/ * Fix lint * Fix test * Fix lint * Fix lint
1 parent 84ceaa9 commit 1dfa26e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+466
-447
lines changed

integrations/api_issue_milestone_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"net/http"
1010
"testing"
1111

12-
"code.gitea.io/gitea/models"
12+
issues_model "code.gitea.io/gitea/models/issues"
1313
repo_model "code.gitea.io/gitea/models/repo"
1414
"code.gitea.io/gitea/models/unittest"
1515
user_model "code.gitea.io/gitea/models/user"
@@ -21,7 +21,7 @@ import (
2121
func TestAPIIssuesMilestone(t *testing.T) {
2222
defer prepareTestEnv(t)()
2323

24-
milestone := unittest.AssertExistsAndLoadBean(t, &models.Milestone{ID: 1}).(*models.Milestone)
24+
milestone := unittest.AssertExistsAndLoadBean(t, &issues_model.Milestone{ID: 1}).(*issues_model.Milestone)
2525
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: milestone.RepoID}).(*repo_model.Repository)
2626
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}).(*user_model.User)
2727
assert.Equal(t, int64(1), int64(milestone.NumIssues))

integrations/api_issue_reaction_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"time"
1212

1313
"code.gitea.io/gitea/models"
14+
"code.gitea.io/gitea/models/db"
1415
"code.gitea.io/gitea/models/unittest"
1516
user_model "code.gitea.io/gitea/models/user"
1617
"code.gitea.io/gitea/modules/convert"
@@ -23,7 +24,7 @@ func TestAPIIssuesReactions(t *testing.T) {
2324
defer prepareTestEnv(t)()
2425

2526
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 1}).(*models.Issue)
26-
_ = issue.LoadRepo()
27+
_ = issue.LoadRepo(db.DefaultContext)
2728
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: issue.Repo.OwnerID}).(*user_model.User)
2829

2930
session := loginUser(t, owner.Name)
@@ -82,7 +83,7 @@ func TestAPICommentReactions(t *testing.T) {
8283
comment := unittest.AssertExistsAndLoadBean(t, &models.Comment{ID: 2}).(*models.Comment)
8384
_ = comment.LoadIssue()
8485
issue := comment.Issue
85-
_ = issue.LoadRepo()
86+
_ = issue.LoadRepo(db.DefaultContext)
8687
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: issue.Repo.OwnerID}).(*user_model.User)
8788

8889
session := loginUser(t, owner.Name)

integrations/api_issue_stopwatch_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"testing"
1010

1111
"code.gitea.io/gitea/models"
12+
"code.gitea.io/gitea/models/db"
1213
repo_model "code.gitea.io/gitea/models/repo"
1314
"code.gitea.io/gitea/models/unittest"
1415
user_model "code.gitea.io/gitea/models/user"
@@ -45,7 +46,7 @@ func TestAPIStopStopWatches(t *testing.T) {
4546
defer prepareTestEnv(t)()
4647

4748
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 2}).(*models.Issue)
48-
_ = issue.LoadRepo()
49+
_ = issue.LoadRepo(db.DefaultContext)
4950
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: issue.Repo.OwnerID}).(*user_model.User)
5051
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
5152

@@ -61,7 +62,7 @@ func TestAPICancelStopWatches(t *testing.T) {
6162
defer prepareTestEnv(t)()
6263

6364
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 1}).(*models.Issue)
64-
_ = issue.LoadRepo()
65+
_ = issue.LoadRepo(db.DefaultContext)
6566
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: issue.Repo.OwnerID}).(*user_model.User)
6667
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}).(*user_model.User)
6768

@@ -77,7 +78,7 @@ func TestAPIStartStopWatches(t *testing.T) {
7778
defer prepareTestEnv(t)()
7879

7980
issue := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 3}).(*models.Issue)
80-
_ = issue.LoadRepo()
81+
_ = issue.LoadRepo(db.DefaultContext)
8182
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: issue.Repo.OwnerID}).(*user_model.User)
8283
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
8384

integrations/api_issue_tracked_time_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"time"
1212

1313
"code.gitea.io/gitea/models"
14+
"code.gitea.io/gitea/models/db"
1415
"code.gitea.io/gitea/models/unittest"
1516
user_model "code.gitea.io/gitea/models/user"
1617
api "code.gitea.io/gitea/modules/structs"
@@ -23,7 +24,7 @@ func TestAPIGetTrackedTimes(t *testing.T) {
2324

2425
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
2526
issue2 := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 2}).(*models.Issue)
26-
assert.NoError(t, issue2.LoadRepo())
27+
assert.NoError(t, issue2.LoadRepo(db.DefaultContext))
2728

2829
session := loginUser(t, user2.Name)
2930
token := getTokenForLoggedInUser(t, session)
@@ -65,7 +66,7 @@ func TestAPIDeleteTrackedTime(t *testing.T) {
6566

6667
time6 := unittest.AssertExistsAndLoadBean(t, &models.TrackedTime{ID: 6}).(*models.TrackedTime)
6768
issue2 := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 2}).(*models.Issue)
68-
assert.NoError(t, issue2.LoadRepo())
69+
assert.NoError(t, issue2.LoadRepo(db.DefaultContext))
6970
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
7071

7172
session := loginUser(t, user2.Name)
@@ -99,7 +100,7 @@ func TestAPIAddTrackedTimes(t *testing.T) {
99100
defer prepareTestEnv(t)()
100101

101102
issue2 := unittest.AssertExistsAndLoadBean(t, &models.Issue{ID: 2}).(*models.Issue)
102-
assert.NoError(t, issue2.LoadRepo())
103+
assert.NoError(t, issue2.LoadRepo(db.DefaultContext))
103104
user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
104105
admin := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}).(*user_model.User)
105106

models/action.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ func (a *Action) getCommentLink(ctx context.Context) string {
243243
return "#"
244244
}
245245

246-
if err = issue.loadRepo(ctx); err != nil {
246+
if err = issue.LoadRepo(ctx); err != nil {
247247
return "#"
248248
}
249249

models/consistency_test.go

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ import (
88
"testing"
99

1010
"code.gitea.io/gitea/models/db"
11+
issues_model "code.gitea.io/gitea/models/issues"
12+
repo_model "code.gitea.io/gitea/models/repo"
1113
"code.gitea.io/gitea/models/unittest"
14+
"code.gitea.io/gitea/modules/timeutil"
1215

1316
"github.com/stretchr/testify/assert"
1417
)
@@ -33,3 +36,70 @@ func TestDeleteOrphanedObjects(t *testing.T) {
3336
assert.NoError(t, err)
3437
assert.EqualValues(t, countBefore, countAfter)
3538
}
39+
40+
func TestNewMilestone(t *testing.T) {
41+
assert.NoError(t, unittest.PrepareTestDatabase())
42+
milestone := &issues_model.Milestone{
43+
RepoID: 1,
44+
Name: "milestoneName",
45+
Content: "milestoneContent",
46+
}
47+
48+
assert.NoError(t, issues_model.NewMilestone(milestone))
49+
unittest.AssertExistsAndLoadBean(t, milestone)
50+
unittest.CheckConsistencyFor(t, &repo_model.Repository{ID: milestone.RepoID}, &issues_model.Milestone{})
51+
}
52+
53+
func TestChangeMilestoneStatus(t *testing.T) {
54+
assert.NoError(t, unittest.PrepareTestDatabase())
55+
milestone := unittest.AssertExistsAndLoadBean(t, &issues_model.Milestone{ID: 1}).(*issues_model.Milestone)
56+
57+
assert.NoError(t, issues_model.ChangeMilestoneStatus(milestone, true))
58+
unittest.AssertExistsAndLoadBean(t, &issues_model.Milestone{ID: 1}, "is_closed=1")
59+
unittest.CheckConsistencyFor(t, &repo_model.Repository{ID: milestone.RepoID}, &issues_model.Milestone{})
60+
61+
assert.NoError(t, issues_model.ChangeMilestoneStatus(milestone, false))
62+
unittest.AssertExistsAndLoadBean(t, &issues_model.Milestone{ID: 1}, "is_closed=0")
63+
unittest.CheckConsistencyFor(t, &repo_model.Repository{ID: milestone.RepoID}, &issues_model.Milestone{})
64+
}
65+
66+
func TestDeleteMilestoneByRepoID(t *testing.T) {
67+
assert.NoError(t, unittest.PrepareTestDatabase())
68+
assert.NoError(t, issues_model.DeleteMilestoneByRepoID(1, 1))
69+
unittest.AssertNotExistsBean(t, &issues_model.Milestone{ID: 1})
70+
unittest.CheckConsistencyFor(t, &repo_model.Repository{ID: 1})
71+
72+
assert.NoError(t, issues_model.DeleteMilestoneByRepoID(unittest.NonexistentID, unittest.NonexistentID))
73+
}
74+
75+
func TestUpdateMilestone(t *testing.T) {
76+
assert.NoError(t, unittest.PrepareTestDatabase())
77+
78+
milestone := unittest.AssertExistsAndLoadBean(t, &issues_model.Milestone{ID: 1}).(*issues_model.Milestone)
79+
milestone.Name = " newMilestoneName "
80+
milestone.Content = "newMilestoneContent"
81+
assert.NoError(t, issues_model.UpdateMilestone(milestone, milestone.IsClosed))
82+
milestone = unittest.AssertExistsAndLoadBean(t, &issues_model.Milestone{ID: 1}).(*issues_model.Milestone)
83+
assert.EqualValues(t, "newMilestoneName", milestone.Name)
84+
unittest.CheckConsistencyFor(t, &issues_model.Milestone{})
85+
}
86+
87+
func TestUpdateMilestoneCounters(t *testing.T) {
88+
assert.NoError(t, unittest.PrepareTestDatabase())
89+
issue := unittest.AssertExistsAndLoadBean(t, &Issue{MilestoneID: 1},
90+
"is_closed=0").(*Issue)
91+
92+
issue.IsClosed = true
93+
issue.ClosedUnix = timeutil.TimeStampNow()
94+
_, err := db.GetEngine(db.DefaultContext).ID(issue.ID).Cols("is_closed", "closed_unix").Update(issue)
95+
assert.NoError(t, err)
96+
assert.NoError(t, issues_model.UpdateMilestoneCounters(db.DefaultContext, issue.MilestoneID))
97+
unittest.CheckConsistencyFor(t, &issues_model.Milestone{})
98+
99+
issue.IsClosed = false
100+
issue.ClosedUnix = 0
101+
_, err = db.GetEngine(db.DefaultContext).ID(issue.ID).Cols("is_closed", "closed_unix").Update(issue)
102+
assert.NoError(t, err)
103+
assert.NoError(t, issues_model.UpdateMilestoneCounters(db.DefaultContext, issue.MilestoneID))
104+
unittest.CheckConsistencyFor(t, &issues_model.Milestone{})
105+
}

models/error.go

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1048,33 +1048,6 @@ func (err ErrLabelNotExist) Error() string {
10481048
return fmt.Sprintf("label does not exist [label_id: %d]", err.LabelID)
10491049
}
10501050

1051-
// _____ .__.__ __
1052-
// / \ |__| | ____ _______/ |_ ____ ____ ____
1053-
// / \ / \| | | _/ __ \ / ___/\ __\/ _ \ / \_/ __ \
1054-
// / Y \ | |_\ ___/ \___ \ | | ( <_> ) | \ ___/
1055-
// \____|__ /__|____/\___ >____ > |__| \____/|___| /\___ >
1056-
// \/ \/ \/ \/ \/
1057-
1058-
// ErrMilestoneNotExist represents a "MilestoneNotExist" kind of error.
1059-
type ErrMilestoneNotExist struct {
1060-
ID int64
1061-
RepoID int64
1062-
Name string
1063-
}
1064-
1065-
// IsErrMilestoneNotExist checks if an error is a ErrMilestoneNotExist.
1066-
func IsErrMilestoneNotExist(err error) bool {
1067-
_, ok := err.(ErrMilestoneNotExist)
1068-
return ok
1069-
}
1070-
1071-
func (err ErrMilestoneNotExist) Error() string {
1072-
if len(err.Name) > 0 {
1073-
return fmt.Sprintf("milestone does not exist [name: %s, repo_id: %d]", err.Name, err.RepoID)
1074-
}
1075-
return fmt.Sprintf("milestone does not exist [id: %d, repo_id: %d]", err.ID, err.RepoID)
1076-
}
1077-
10781051
// ____ ___ .__ .___
10791052
// | | \______ | | _________ __| _/
10801053
// | | /\____ \| | / _ \__ \ / __ |

0 commit comments

Comments
 (0)