Skip to content

Commit d91d4db

Browse files
authored
Move tests as seperate sub packages to reduce duplicated file names (#19951)
1 parent b4d420d commit d91d4db

27 files changed

+901
-899
lines changed

models/db/context.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ type Context struct {
3232
e Engine
3333
}
3434

35-
// WithEngine returns a db.Context from a context.Context and db.Engine
35+
// WithEngine returns a Context from a context.Context and Engine
3636
func WithEngine(ctx context.Context, e Engine) *Context {
3737
return &Context{
3838
Context: ctx,

models/db/engine_test.go

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
// Copyright 2019 The Gitea Authors. All rights reserved.
2+
// Use of this source code is governed by a MIT-style
3+
// license that can be found in the LICENSE file.
4+
5+
package db_test
6+
7+
import (
8+
"os"
9+
"path/filepath"
10+
"testing"
11+
12+
"code.gitea.io/gitea/models/db"
13+
issues_model "code.gitea.io/gitea/models/issues"
14+
"code.gitea.io/gitea/models/unittest"
15+
"code.gitea.io/gitea/modules/setting"
16+
17+
"github.com/stretchr/testify/assert"
18+
)
19+
20+
func TestDumpDatabase(t *testing.T) {
21+
assert.NoError(t, unittest.PrepareTestDatabase())
22+
23+
dir, err := os.MkdirTemp(os.TempDir(), "dump")
24+
assert.NoError(t, err)
25+
26+
type Version struct {
27+
ID int64 `xorm:"pk autoincr"`
28+
Version int64
29+
}
30+
assert.NoError(t, db.GetEngine(db.DefaultContext).Sync2(new(Version)))
31+
32+
for _, dbType := range setting.SupportedDatabaseTypes {
33+
assert.NoError(t, db.DumpDatabase(filepath.Join(dir, dbType+".sql"), dbType))
34+
}
35+
}
36+
37+
func TestDeleteOrphanedObjects(t *testing.T) {
38+
assert.NoError(t, unittest.PrepareTestDatabase())
39+
40+
countBefore, err := db.GetEngine(db.DefaultContext).Count(&issues_model.PullRequest{})
41+
assert.NoError(t, err)
42+
43+
_, err = db.GetEngine(db.DefaultContext).Insert(&issues_model.PullRequest{IssueID: 1000}, &issues_model.PullRequest{IssueID: 1001}, &issues_model.PullRequest{IssueID: 1003})
44+
assert.NoError(t, err)
45+
46+
orphaned, err := db.CountOrphanedObjects("pull_request", "issue", "pull_request.issue_id=issue.id")
47+
assert.NoError(t, err)
48+
assert.EqualValues(t, 3, orphaned)
49+
50+
err = db.DeleteOrphanedObjects("pull_request", "issue", "pull_request.issue_id=issue.id")
51+
assert.NoError(t, err)
52+
53+
countAfter, err := db.GetEngine(db.DefaultContext).Count(&issues_model.PullRequest{})
54+
assert.NoError(t, err)
55+
assert.EqualValues(t, countBefore, countAfter)
56+
}

models/db/main_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Copyright 2020 The Gitea Authors. All rights reserved.
2+
// Use of this source code is governed by a MIT-style
3+
// license that can be found in the LICENSE file.
4+
5+
package db_test
6+
7+
import (
8+
"path/filepath"
9+
"testing"
10+
11+
"code.gitea.io/gitea/models/unittest"
12+
13+
_ "code.gitea.io/gitea/models"
14+
_ "code.gitea.io/gitea/models/repo"
15+
)
16+
17+
func TestMain(m *testing.M) {
18+
unittest.MainTest(m, &unittest.TestOptions{
19+
GiteaRootPath: filepath.Join("..", ".."),
20+
})
21+
}

models/engine_test.go

Lines changed: 0 additions & 34 deletions
This file was deleted.

models/git/main_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ import (
88
"path/filepath"
99
"testing"
1010

11-
_ "code.gitea.io/gitea/models"
1211
"code.gitea.io/gitea/models/unittest"
12+
13+
_ "code.gitea.io/gitea/models"
1314
)
1415

1516
func TestMain(m *testing.M) {

models/issues/main_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@ import (
88
"path/filepath"
99
"testing"
1010

11-
_ "code.gitea.io/gitea/models"
1211
issues_model "code.gitea.io/gitea/models/issues"
13-
_ "code.gitea.io/gitea/models/repo"
1412
"code.gitea.io/gitea/models/unittest"
15-
_ "code.gitea.io/gitea/models/user"
1613
"code.gitea.io/gitea/modules/setting"
1714

15+
_ "code.gitea.io/gitea/models"
16+
_ "code.gitea.io/gitea/models/repo"
17+
_ "code.gitea.io/gitea/models/user"
18+
1819
"github.com/stretchr/testify/assert"
1920
)
2021

models/org_test.go

Lines changed: 0 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,9 @@ package models
77
import (
88
"testing"
99

10-
"code.gitea.io/gitea/models/db"
1110
"code.gitea.io/gitea/models/organization"
12-
repo_model "code.gitea.io/gitea/models/repo"
1311
"code.gitea.io/gitea/models/unittest"
1412
user_model "code.gitea.io/gitea/models/user"
15-
"code.gitea.io/gitea/modules/setting"
1613

1714
"github.com/stretchr/testify/assert"
1815
)
@@ -62,115 +59,3 @@ func TestRemoveOrgUser(t *testing.T) {
6259
unittest.AssertExistsAndLoadBean(t, &organization.OrgUser{OrgID: 7, UID: 5})
6360
unittest.CheckConsistencyFor(t, &user_model.User{}, &organization.Team{})
6461
}
65-
66-
func TestUser_RemoveOrgRepo(t *testing.T) {
67-
assert.NoError(t, unittest.PrepareTestDatabase())
68-
org := unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: 3}).(*organization.Organization)
69-
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{OwnerID: org.ID}).(*repo_model.Repository)
70-
71-
// remove a repo that does belong to org
72-
unittest.AssertExistsAndLoadBean(t, &organization.TeamRepo{RepoID: repo.ID, OrgID: org.ID})
73-
assert.NoError(t, organization.RemoveOrgRepo(db.DefaultContext, org.ID, repo.ID))
74-
unittest.AssertNotExistsBean(t, &organization.TeamRepo{RepoID: repo.ID, OrgID: org.ID})
75-
unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: repo.ID}) // repo should still exist
76-
77-
// remove a repo that does not belong to org
78-
assert.NoError(t, organization.RemoveOrgRepo(db.DefaultContext, org.ID, repo.ID))
79-
unittest.AssertNotExistsBean(t, &organization.TeamRepo{RepoID: repo.ID, OrgID: org.ID})
80-
81-
assert.NoError(t, organization.RemoveOrgRepo(db.DefaultContext, org.ID, unittest.NonexistentID))
82-
83-
unittest.CheckConsistencyFor(t,
84-
&user_model.User{ID: org.ID},
85-
&organization.Team{OrgID: org.ID},
86-
&repo_model.Repository{ID: repo.ID})
87-
}
88-
89-
func TestCreateOrganization(t *testing.T) {
90-
// successful creation of org
91-
assert.NoError(t, unittest.PrepareTestDatabase())
92-
93-
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
94-
const newOrgName = "neworg"
95-
org := &organization.Organization{
96-
Name: newOrgName,
97-
}
98-
99-
unittest.AssertNotExistsBean(t, &user_model.User{Name: newOrgName, Type: user_model.UserTypeOrganization})
100-
assert.NoError(t, organization.CreateOrganization(org, owner))
101-
org = unittest.AssertExistsAndLoadBean(t,
102-
&organization.Organization{Name: newOrgName, Type: user_model.UserTypeOrganization}).(*organization.Organization)
103-
ownerTeam := unittest.AssertExistsAndLoadBean(t,
104-
&organization.Team{Name: organization.OwnerTeamName, OrgID: org.ID}).(*organization.Team)
105-
unittest.AssertExistsAndLoadBean(t, &organization.TeamUser{UID: owner.ID, TeamID: ownerTeam.ID})
106-
unittest.CheckConsistencyFor(t, &user_model.User{}, &organization.Team{})
107-
}
108-
109-
func TestCreateOrganization2(t *testing.T) {
110-
// unauthorized creation of org
111-
assert.NoError(t, unittest.PrepareTestDatabase())
112-
113-
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 5}).(*user_model.User)
114-
const newOrgName = "neworg"
115-
org := &organization.Organization{
116-
Name: newOrgName,
117-
}
118-
119-
unittest.AssertNotExistsBean(t, &organization.Organization{Name: newOrgName, Type: user_model.UserTypeOrganization})
120-
err := organization.CreateOrganization(org, owner)
121-
assert.Error(t, err)
122-
assert.True(t, organization.IsErrUserNotAllowedCreateOrg(err))
123-
unittest.AssertNotExistsBean(t, &organization.Organization{Name: newOrgName, Type: user_model.UserTypeOrganization})
124-
unittest.CheckConsistencyFor(t, &organization.Organization{}, &organization.Team{})
125-
}
126-
127-
func TestCreateOrganization3(t *testing.T) {
128-
// create org with same name as existent org
129-
assert.NoError(t, unittest.PrepareTestDatabase())
130-
131-
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
132-
org := &organization.Organization{Name: "user3"} // should already exist
133-
unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: org.Name}) // sanity check
134-
err := organization.CreateOrganization(org, owner)
135-
assert.Error(t, err)
136-
assert.True(t, user_model.IsErrUserAlreadyExist(err))
137-
unittest.CheckConsistencyFor(t, &user_model.User{}, &organization.Team{})
138-
}
139-
140-
func TestCreateOrganization4(t *testing.T) {
141-
// create org with unusable name
142-
assert.NoError(t, unittest.PrepareTestDatabase())
143-
144-
owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}).(*user_model.User)
145-
err := organization.CreateOrganization(&organization.Organization{Name: "assets"}, owner)
146-
assert.Error(t, err)
147-
assert.True(t, db.IsErrNameReserved(err))
148-
unittest.CheckConsistencyFor(t, &organization.Organization{}, &organization.Team{})
149-
}
150-
151-
func TestAddOrgUser(t *testing.T) {
152-
assert.NoError(t, unittest.PrepareTestDatabase())
153-
testSuccess := func(orgID, userID int64, isPublic bool) {
154-
org := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: orgID}).(*user_model.User)
155-
expectedNumMembers := org.NumMembers
156-
if !unittest.BeanExists(t, &organization.OrgUser{OrgID: orgID, UID: userID}) {
157-
expectedNumMembers++
158-
}
159-
assert.NoError(t, organization.AddOrgUser(orgID, userID))
160-
ou := &organization.OrgUser{OrgID: orgID, UID: userID}
161-
unittest.AssertExistsAndLoadBean(t, ou)
162-
assert.Equal(t, isPublic, ou.IsPublic)
163-
org = unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: orgID}).(*user_model.User)
164-
assert.EqualValues(t, expectedNumMembers, org.NumMembers)
165-
}
166-
167-
setting.Service.DefaultOrgMemberVisible = false
168-
testSuccess(3, 5, false)
169-
testSuccess(3, 5, false)
170-
testSuccess(6, 2, false)
171-
172-
setting.Service.DefaultOrgMemberVisible = true
173-
testSuccess(6, 3, true)
174-
175-
unittest.CheckConsistencyFor(t, &user_model.User{}, &organization.Team{})
176-
}

models/organization/main_test.go

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,22 @@
22
// Use of this source code is governed by a MIT-style
33
// license that can be found in the LICENSE file.
44

5-
package organization
5+
package organization_test
66

77
import (
88
"path/filepath"
99
"testing"
1010

1111
"code.gitea.io/gitea/models/unittest"
12+
13+
_ "code.gitea.io/gitea/models"
14+
_ "code.gitea.io/gitea/models/organization"
15+
_ "code.gitea.io/gitea/models/repo"
16+
_ "code.gitea.io/gitea/models/user"
1217
)
1318

1419
func TestMain(m *testing.M) {
1520
unittest.MainTest(m, &unittest.TestOptions{
1621
GiteaRootPath: filepath.Join("..", ".."),
17-
FixtureFiles: []string{
18-
"user.yml",
19-
"org_user.yml",
20-
"team.yml",
21-
"team_repo.yml",
22-
"team_unit.yml",
23-
"team_user.yml",
24-
"repository.yml",
25-
},
2622
})
2723
}

0 commit comments

Comments
 (0)