Skip to content

Commit bce3eb4

Browse files
committed
decouple unit test code from business code
1 parent 0db7a32 commit bce3eb4

File tree

136 files changed

+999
-853
lines changed

Some content is hidden

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

136 files changed

+999
-853
lines changed

contrib/fixtures/fixture_generation.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
package main
66

77
import (
8+
"code.gitea.io/gitea/models/unittest"
89
"fmt"
910
"os"
1011
"path/filepath"
1112

1213
"code.gitea.io/gitea/models"
13-
"code.gitea.io/gitea/models/db"
1414
)
1515

1616
// To generate derivative fixtures, execute the following from Gitea's repository base dir:
@@ -31,13 +31,13 @@ var (
3131
func main() {
3232
pathToGiteaRoot := "."
3333
fixturesDir = filepath.Join(pathToGiteaRoot, "models", "fixtures")
34-
if err := db.CreateTestEngine(db.FixturesOptions{
34+
if err := unittest.CreateTestEngine(unittest.FixturesOptions{
3535
Dir: fixturesDir,
3636
}); err != nil {
3737
fmt.Printf("CreateTestEngine: %+v", err)
3838
os.Exit(1)
3939
}
40-
if err := db.PrepareTestDatabase(); err != nil {
40+
if err := unittest.PrepareTestDatabase(); err != nil {
4141
fmt.Printf("PrepareTestDatabase: %+v\n", err)
4242
os.Exit(1)
4343
}

contrib/pr/checkout.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Checkout a PR and load the tests data into sqlite database
99
*/
1010

1111
import (
12+
"code.gitea.io/gitea/models/unittest"
1213
"context"
1314
"flag"
1415
"fmt"
@@ -99,16 +100,16 @@ func runPR() {
99100
})
100101
db.HasEngine = true
101102
//x.ShowSQL(true)
102-
err = db.InitFixtures(
103-
db.FixturesOptions{
103+
err = unittest.InitFixtures(
104+
unittest.FixturesOptions{
104105
Dir: path.Join(curDir, "models/fixtures/"),
105106
},
106107
)
107108
if err != nil {
108109
fmt.Printf("Error initializing test database: %v\n", err)
109110
os.Exit(1)
110111
}
111-
db.LoadFixtures()
112+
unittest.LoadFixtures()
112113
util.RemoveAll(setting.RepoRootPath)
113114
util.RemoveAll(models.LocalCopyPath())
114115
util.CopyDir(path.Join(curDir, "integrations/gitea-repositories-meta"), setting.RepoRootPath)

integrations/api_issue_label_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package integrations
66

77
import (
8+
"code.gitea.io/gitea/models/unittest"
89
"fmt"
910
"net/http"
1011
"strings"
@@ -18,7 +19,7 @@ import (
1819
)
1920

2021
func TestAPIModifyLabels(t *testing.T) {
21-
assert.NoError(t, db.LoadFixtures())
22+
assert.NoError(t, unittest.LoadFixtures())
2223

2324
repo := db.AssertExistsAndLoadBean(t, &models.Repository{ID: 2}).(*models.Repository)
2425
owner := db.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
@@ -88,7 +89,7 @@ func TestAPIModifyLabels(t *testing.T) {
8889
}
8990

9091
func TestAPIAddIssueLabels(t *testing.T) {
91-
assert.NoError(t, db.LoadFixtures())
92+
assert.NoError(t, unittest.LoadFixtures())
9293

9394
repo := db.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
9495
issue := db.AssertExistsAndLoadBean(t, &models.Issue{RepoID: repo.ID}).(*models.Issue)
@@ -111,7 +112,7 @@ func TestAPIAddIssueLabels(t *testing.T) {
111112
}
112113

113114
func TestAPIReplaceIssueLabels(t *testing.T) {
114-
assert.NoError(t, db.LoadFixtures())
115+
assert.NoError(t, unittest.LoadFixtures())
115116

116117
repo := db.AssertExistsAndLoadBean(t, &models.Repository{ID: 1}).(*models.Repository)
117118
issue := db.AssertExistsAndLoadBean(t, &models.Issue{RepoID: repo.ID}).(*models.Issue)
@@ -137,7 +138,7 @@ func TestAPIReplaceIssueLabels(t *testing.T) {
137138
}
138139

139140
func TestAPIModifyOrgLabels(t *testing.T) {
140-
assert.NoError(t, db.LoadFixtures())
141+
assert.NoError(t, unittest.LoadFixtures())
141142

142143
repo := db.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository)
143144
owner := db.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)

integrations/integration_test.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
"time"
2626

2727
"code.gitea.io/gitea/models"
28-
"code.gitea.io/gitea/models/db"
28+
"code.gitea.io/gitea/models/unittest"
2929
"code.gitea.io/gitea/modules/base"
3030
"code.gitea.io/gitea/modules/git"
3131
"code.gitea.io/gitea/modules/graceful"
@@ -34,6 +34,8 @@ import (
3434
"code.gitea.io/gitea/modules/queue"
3535
"code.gitea.io/gitea/modules/setting"
3636
"code.gitea.io/gitea/modules/storage"
37+
"code.gitea.io/gitea/modules/unittestapi"
38+
"code.gitea.io/gitea/modules/unittestassert"
3739
"code.gitea.io/gitea/modules/util"
3840
"code.gitea.io/gitea/modules/web"
3941
"code.gitea.io/gitea/routers"
@@ -84,6 +86,7 @@ func NewNilResponseHashSumRecorder() *NilResponseHashSumRecorder {
8486
func TestMain(m *testing.M) {
8587
defer log.Close()
8688

89+
unittestapi.SetNewAsserterFunc(unittestassert.NewTestifyAsserter)
8790
managerCtx, cancel := context.WithCancel(context.Background())
8891
graceful.InitManager(managerCtx)
8992
defer cancel()
@@ -112,8 +115,8 @@ func TestMain(m *testing.M) {
112115
}
113116
}
114117

115-
err := db.InitFixtures(
116-
db.FixturesOptions{
118+
err := unittest.InitFixtures(
119+
unittest.FixturesOptions{
117120
Dir: filepath.Join(filepath.Dir(setting.AppPath), "models/fixtures/"),
118121
},
119122
)
@@ -250,7 +253,7 @@ func prepareTestEnv(t testing.TB, skip ...int) func() {
250253
ourSkip += skip[0]
251254
}
252255
deferFn := PrintCurrentTest(t, ourSkip)
253-
assert.NoError(t, db.LoadFixtures())
256+
assert.NoError(t, unittest.LoadFixtures())
254257
assert.NoError(t, util.RemoveAll(setting.RepoRootPath))
255258

256259
assert.NoError(t, util.CopyDir(path.Join(filepath.Dir(setting.AppPath), "integrations/gitea-repositories-meta"), setting.RepoRootPath))
@@ -527,7 +530,7 @@ func GetCSRF(t testing.TB, session *TestSession, urlStr string) string {
527530
// within a single test this is required
528531
func resetFixtures(t *testing.T) {
529532
assert.NoError(t, queue.GetManager().FlushAll(context.Background(), -1))
530-
assert.NoError(t, db.LoadFixtures())
533+
assert.NoError(t, unittest.LoadFixtures())
531534
assert.NoError(t, util.RemoveAll(setting.RepoRootPath))
532535
assert.NoError(t, util.CopyDir(path.Join(filepath.Dir(setting.AppPath), "integrations/gitea-repositories-meta"), setting.RepoRootPath))
533536
}

integrations/migrate_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package integrations
66

77
import (
8+
"code.gitea.io/gitea/models/unittest"
89
"os"
910
"testing"
1011

@@ -17,7 +18,7 @@ import (
1718
)
1819

1920
func TestMigrateLocalPath(t *testing.T) {
20-
assert.NoError(t, db.PrepareTestDatabase())
21+
assert.NoError(t, unittest.PrepareTestDatabase())
2122

2223
adminUser := db.AssertExistsAndLoadBean(t, &models.User{Name: "user1"}).(*models.User)
2324

integrations/repofiles_delete_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
package integrations
66

77
import (
8+
"code.gitea.io/gitea/models/unittest"
89
"net/url"
910
"testing"
1011

1112
"code.gitea.io/gitea/models"
12-
"code.gitea.io/gitea/models/db"
1313
"code.gitea.io/gitea/modules/repofiles"
1414
api "code.gitea.io/gitea/modules/structs"
1515
"code.gitea.io/gitea/modules/test"
@@ -67,7 +67,7 @@ func TestDeleteRepoFile(t *testing.T) {
6767

6868
func testDeleteRepoFile(t *testing.T, u *url.URL) {
6969
// setup
70-
db.PrepareTestEnv(t)
70+
unittest.PrepareTestEnv(t)
7171
ctx := test.MockContext(t, "user2/repo1")
7272
ctx.SetParams(":id", "1")
7373
test.LoadRepo(t, ctx, 1)
@@ -106,7 +106,7 @@ func TestDeleteRepoFileWithoutBranchNames(t *testing.T) {
106106

107107
func testDeleteRepoFileWithoutBranchNames(t *testing.T, u *url.URL) {
108108
// setup
109-
db.PrepareTestEnv(t)
109+
unittest.PrepareTestEnv(t)
110110
ctx := test.MockContext(t, "user2/repo1")
111111
ctx.SetParams(":id", "1")
112112
test.LoadRepo(t, ctx, 1)
@@ -136,7 +136,7 @@ func testDeleteRepoFileWithoutBranchNames(t *testing.T, u *url.URL) {
136136

137137
func TestDeleteRepoFileErrors(t *testing.T) {
138138
// setup
139-
db.PrepareTestEnv(t)
139+
unittest.PrepareTestEnv(t)
140140
ctx := test.MockContext(t, "user2/repo1")
141141
ctx.SetParams(":id", "1")
142142
test.LoadRepo(t, ctx, 1)

models/access_test.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,15 @@
55
package models
66

77
import (
8+
"code.gitea.io/gitea/models/unittest"
89
"testing"
910

1011
"code.gitea.io/gitea/models/db"
1112
"github.com/stretchr/testify/assert"
1213
)
1314

1415
func TestAccessLevel(t *testing.T) {
15-
assert.NoError(t, db.PrepareTestDatabase())
16+
assert.NoError(t, unittest.PrepareTestDatabase())
1617

1718
user2 := db.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
1819
user5 := db.AssertExistsAndLoadBean(t, &User{ID: 5}).(*User)
@@ -63,7 +64,7 @@ func TestAccessLevel(t *testing.T) {
6364
}
6465

6566
func TestHasAccess(t *testing.T) {
66-
assert.NoError(t, db.PrepareTestDatabase())
67+
assert.NoError(t, unittest.PrepareTestDatabase())
6768

6869
user1 := db.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
6970
user2 := db.AssertExistsAndLoadBean(t, &User{ID: 5}).(*User)
@@ -89,7 +90,7 @@ func TestHasAccess(t *testing.T) {
8990
}
9091

9192
func TestUser_GetRepositoryAccesses(t *testing.T) {
92-
assert.NoError(t, db.PrepareTestDatabase())
93+
assert.NoError(t, unittest.PrepareTestDatabase())
9394

9495
user1 := db.AssertExistsAndLoadBean(t, &User{ID: 1}).(*User)
9596
accesses, err := user1.GetRepositoryAccesses()
@@ -103,7 +104,7 @@ func TestUser_GetRepositoryAccesses(t *testing.T) {
103104
}
104105

105106
func TestUser_GetAccessibleRepositories(t *testing.T) {
106-
assert.NoError(t, db.PrepareTestDatabase())
107+
assert.NoError(t, unittest.PrepareTestDatabase())
107108

108109
user1 := db.AssertExistsAndLoadBean(t, &User{ID: 1}).(*User)
109110
repos, err := user1.GetAccessibleRepositories(0)
@@ -123,7 +124,7 @@ func TestUser_GetAccessibleRepositories(t *testing.T) {
123124

124125
func TestRepository_RecalculateAccesses(t *testing.T) {
125126
// test with organization repo
126-
assert.NoError(t, db.PrepareTestDatabase())
127+
assert.NoError(t, unittest.PrepareTestDatabase())
127128
repo1 := db.AssertExistsAndLoadBean(t, &Repository{ID: 3}).(*Repository)
128129
assert.NoError(t, repo1.GetOwner())
129130

@@ -140,7 +141,7 @@ func TestRepository_RecalculateAccesses(t *testing.T) {
140141

141142
func TestRepository_RecalculateAccesses2(t *testing.T) {
142143
// test with non-organization repo
143-
assert.NoError(t, db.PrepareTestDatabase())
144+
assert.NoError(t, unittest.PrepareTestDatabase())
144145
repo1 := db.AssertExistsAndLoadBean(t, &Repository{ID: 4}).(*Repository)
145146
assert.NoError(t, repo1.GetOwner())
146147

@@ -154,7 +155,7 @@ func TestRepository_RecalculateAccesses2(t *testing.T) {
154155
}
155156

156157
func TestRepository_RecalculateAccesses3(t *testing.T) {
157-
assert.NoError(t, db.PrepareTestDatabase())
158+
assert.NoError(t, unittest.PrepareTestDatabase())
158159
team5 := db.AssertExistsAndLoadBean(t, &Team{ID: 5}).(*Team)
159160
user29 := db.AssertExistsAndLoadBean(t, &User{ID: 29}).(*User)
160161

models/action_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package models
66

77
import (
8+
"code.gitea.io/gitea/models/unittest"
89
"path"
910
"testing"
1011

@@ -15,15 +16,15 @@ import (
1516
)
1617

1718
func TestAction_GetRepoPath(t *testing.T) {
18-
assert.NoError(t, db.PrepareTestDatabase())
19+
assert.NoError(t, unittest.PrepareTestDatabase())
1920
repo := db.AssertExistsAndLoadBean(t, &Repository{}).(*Repository)
2021
owner := db.AssertExistsAndLoadBean(t, &User{ID: repo.OwnerID}).(*User)
2122
action := &Action{RepoID: repo.ID}
2223
assert.Equal(t, path.Join(owner.Name, repo.Name), action.GetRepoPath())
2324
}
2425

2526
func TestAction_GetRepoLink(t *testing.T) {
26-
assert.NoError(t, db.PrepareTestDatabase())
27+
assert.NoError(t, unittest.PrepareTestDatabase())
2728
repo := db.AssertExistsAndLoadBean(t, &Repository{}).(*Repository)
2829
owner := db.AssertExistsAndLoadBean(t, &User{ID: repo.OwnerID}).(*User)
2930
action := &Action{RepoID: repo.ID}
@@ -34,7 +35,7 @@ func TestAction_GetRepoLink(t *testing.T) {
3435

3536
func TestGetFeeds(t *testing.T) {
3637
// test with an individual user
37-
assert.NoError(t, db.PrepareTestDatabase())
38+
assert.NoError(t, unittest.PrepareTestDatabase())
3839
user := db.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
3940

4041
actions, err := GetFeeds(GetFeedsOptions{
@@ -62,7 +63,7 @@ func TestGetFeeds(t *testing.T) {
6263

6364
func TestGetFeeds2(t *testing.T) {
6465
// test with an organization user
65-
assert.NoError(t, db.PrepareTestDatabase())
66+
assert.NoError(t, unittest.PrepareTestDatabase())
6667
org := db.AssertExistsAndLoadBean(t, &User{ID: 3}).(*User)
6768
user := db.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
6869

0 commit comments

Comments
 (0)