Browse Source

Use a struct as test options (#19393)

* Use a struct as test options

* Fix name

* Fix test
tags/v1.18.0-dev
Lunny Xiao 2 years ago
parent
commit
b8911fb456
No account linked to committer's email address
40 changed files with 210 additions and 100 deletions
  1. 4
    3
      models/admin/main_test.go
  2. 11
    8
      models/asymkey/main_test.go
  3. 10
    7
      models/auth/main_test.go
  4. 3
    1
      models/db/paginator/main_test.go
  5. 9
    6
      models/issues/main_test.go
  6. 3
    1
      models/main_test.go
  7. 12
    9
      models/organization/main_test.go
  8. 9
    6
      models/project/main_test.go
  9. 16
    13
      models/repo/main_test.go
  10. 29
    8
      models/unittest/testdb.go
  11. 12
    9
      models/user/main_test.go
  12. 7
    1
      models/webhook/main_test.go
  13. 4
    1
      modules/appstate/appstate_test.go
  14. 3
    1
      modules/convert/main_test.go
  15. 3
    1
      modules/indexer/code/indexer_test.go
  16. 3
    1
      modules/indexer/issues/indexer_test.go
  17. 3
    1
      modules/indexer/stats/indexer_test.go
  18. 3
    1
      modules/notification/action/action_test.go
  19. 3
    1
      modules/repository/main_test.go
  20. 3
    1
      routers/api/v1/repo/main_test.go
  21. 3
    1
      routers/web/admin/main_test.go
  22. 3
    1
      routers/web/auth/main_test.go
  23. 3
    1
      routers/web/repo/main_test.go
  24. 3
    1
      routers/web/user/main_test.go
  25. 3
    1
      routers/web/user/setting/main_test.go
  26. 3
    1
      services/asymkey/main_test.go
  27. 3
    1
      services/attachment/attachment_test.go
  28. 3
    1
      services/gitdiff/main_test.go
  29. 3
    1
      services/issue/main_test.go
  30. 3
    1
      services/mailer/main_test.go
  31. 3
    1
      services/migrations/main_test.go
  32. 3
    1
      services/org/org_test.go
  33. 3
    1
      services/pull/main_test.go
  34. 3
    1
      services/release/release_test.go
  35. 3
    1
      services/repository/archiver/archiver_test.go
  36. 3
    1
      services/repository/files/content_test.go
  37. 3
    1
      services/repository/main_test.go
  38. 3
    1
      services/user/user_test.go
  39. 3
    1
      services/webhook/main_test.go
  40. 3
    1
      services/wiki/wiki_test.go

+ 4
- 3
models/admin/main_test.go View File

@@ -12,7 +12,8 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."),
"notice.yml",
)
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
FixtureFiles: []string{"notice.yml"},
})
}

+ 11
- 8
models/asymkey/main_test.go View File

@@ -18,12 +18,15 @@ func init() {
}

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."),
"gpg_key.yml",
"public_key.yml",
"deploy_key.yml",
"gpg_key_import.yml",
"user.yml",
"email_address.yml",
)
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
FixtureFiles: []string{
"gpg_key.yml",
"public_key.yml",
"deploy_key.yml",
"gpg_key_import.yml",
"user.yml",
"email_address.yml",
},
})
}

+ 10
- 7
models/auth/main_test.go View File

@@ -12,11 +12,14 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."),
"login_source.yml",
"oauth2_application.yml",
"oauth2_authorization_code.yml",
"oauth2_grant.yml",
"webauthn_credential.yml",
)
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
FixtureFiles: []string{
"login_source.yml",
"oauth2_application.yml",
"oauth2_authorization_code.yml",
"oauth2_grant.yml",
"webauthn_credential.yml",
},
})
}

+ 3
- 1
models/db/paginator/main_test.go View File

@@ -12,5 +12,7 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", "..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", "..", ".."),
})
}

+ 9
- 6
models/issues/main_test.go View File

@@ -18,10 +18,13 @@ func init() {
}

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."),
"reaction.yml",
"user.yml",
"repository.yml",
"milestone.yml",
)
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
FixtureFiles: []string{
"reaction.yml",
"user.yml",
"repository.yml",
"milestone.yml",
},
})
}

+ 3
- 1
models/main_test.go View File

@@ -37,5 +37,7 @@ func TestFixturesAreConsistent(t *testing.T) {
}

func TestMain(m *testing.M) {
unittest.MainTest(m, "..")
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: "..",
})
}

+ 12
- 9
models/organization/main_test.go View File

@@ -12,13 +12,16 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."),
"user.yml",
"org_user.yml",
"team.yml",
"team_repo.yml",
"team_unit.yml",
"team_user.yml",
"repository.yml",
)
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
FixtureFiles: []string{
"user.yml",
"org_user.yml",
"team.yml",
"team_repo.yml",
"team_unit.yml",
"team_user.yml",
"repository.yml",
},
})
}

+ 9
- 6
models/project/main_test.go View File

@@ -14,10 +14,13 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."),
"project.yml",
"project_board.yml",
"project_issue.yml",
"repository.yml",
)
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
FixtureFiles: []string{
"project.yml",
"project_board.yml",
"project_issue.yml",
"repository.yml",
},
})
}

+ 16
- 13
models/repo/main_test.go View File

@@ -12,17 +12,20 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."),
"attachment.yml",
"repo_archiver.yml",
"repository.yml",
"repo_unit.yml",
"repo_indexer_status.yml",
"repo_redirect.yml",
"watch.yml",
"star.yml",
"topic.yml",
"repo_topic.yml",
"user.yml",
)
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
FixtureFiles: []string{
"attachment.yml",
"repo_archiver.yml",
"repository.yml",
"repo_unit.yml",
"repo_indexer_status.yml",
"repo_redirect.yml",
"watch.yml",
"star.yml",
"topic.yml",
"repo_topic.yml",
"user.yml",
},
})
}

+ 29
- 8
models/unittest/testdb.go View File

@@ -39,19 +39,27 @@ func fatalTestError(fmtStr string, args ...interface{}) {
os.Exit(1)
}

// TestOptions represents test options
type TestOptions struct {
GiteaRootPath string
FixtureFiles []string
SetUp func() error // SetUp will be executed before all tests in this package
TearDown func() error // TearDown will be executed after all tests in this package
}

// MainTest a reusable TestMain(..) function for unit tests that need to use a
// test database. Creates the test database, and sets necessary settings.
func MainTest(m *testing.M, pathToGiteaRoot string, fixtureFiles ...string) {
func MainTest(m *testing.M, testOpts *TestOptions) {
var err error

giteaRoot = pathToGiteaRoot
fixturesDir = filepath.Join(pathToGiteaRoot, "models", "fixtures")
giteaRoot = testOpts.GiteaRootPath
fixturesDir = filepath.Join(testOpts.GiteaRootPath, "models", "fixtures")

var opts FixturesOptions
if len(fixtureFiles) == 0 {
if len(testOpts.FixtureFiles) == 0 {
opts.Dir = fixturesDir
} else {
for _, f := range fixtureFiles {
for _, f := range testOpts.FixtureFiles {
if len(f) != 0 {
opts.Files = append(opts.Files, filepath.Join(fixturesDir, f))
}
@@ -80,8 +88,8 @@ func MainTest(m *testing.M, pathToGiteaRoot string, fixtureFiles ...string) {
fatalTestError("TempDir: %v\n", err)
}
setting.AppDataPath = appDataPath
setting.AppWorkPath = pathToGiteaRoot
setting.StaticRootPath = pathToGiteaRoot
setting.AppWorkPath = testOpts.GiteaRootPath
setting.StaticRootPath = testOpts.GiteaRootPath
setting.GravatarSourceURL, err = url.Parse("https://secure.gravatar.com/avatar/")
if err != nil {
fatalTestError("url.Parse: %v\n", err)
@@ -105,7 +113,7 @@ func MainTest(m *testing.M, pathToGiteaRoot string, fixtureFiles ...string) {
if err = util.RemoveAll(repoRootPath); err != nil {
fatalTestError("util.RemoveAll: %v\n", err)
}
if err = CopyDir(filepath.Join(pathToGiteaRoot, "integrations", "gitea-repositories-meta"), setting.RepoRootPath); err != nil {
if err = CopyDir(filepath.Join(testOpts.GiteaRootPath, "integrations", "gitea-repositories-meta"), setting.RepoRootPath); err != nil {
fatalTestError("util.CopyDir: %v\n", err)
}

@@ -129,7 +137,20 @@ func MainTest(m *testing.M, pathToGiteaRoot string, fixtureFiles ...string) {
}
}

if testOpts.SetUp != nil {
if err := testOpts.SetUp(); err != nil {
fatalTestError("set up failed: %v\n", err)
}
}

exitStatus := m.Run()

if testOpts.TearDown != nil {
if err := testOpts.TearDown(); err != nil {
fatalTestError("tear down failed: %v\n", err)
}
}

if err = util.RemoveAll(repoRootPath); err != nil {
fatalTestError("util.RemoveAll: %v\n", err)
}

+ 12
- 9
models/user/main_test.go View File

@@ -12,13 +12,16 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."),
"email_address.yml",
"user_redirect.yml",
"follow.yml",
"user_open_id.yml",
"two_factor.yml",
"oauth2_application.yml",
"user.yml",
)
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
FixtureFiles: []string{
"email_address.yml",
"user_redirect.yml",
"follow.yml",
"user_open_id.yml",
"two_factor.yml",
"oauth2_application.yml",
"user.yml",
},
})
}

+ 7
- 1
models/webhook/main_test.go View File

@@ -12,5 +12,11 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."), "webhook.yml", "hook_task.yml")
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
FixtureFiles: []string{
"webhook.yml",
"hook_task.yml",
},
})
}

+ 4
- 1
modules/appstate/appstate_test.go View File

@@ -14,7 +14,10 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."), "")
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
FixtureFiles: []string{""}, // load nothing
})
}

type testItem1 struct {

+ 3
- 1
modules/convert/main_test.go View File

@@ -12,5 +12,7 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
})
}

+ 3
- 1
modules/indexer/code/indexer_test.go View File

@@ -18,7 +18,9 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", "..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", "..", ".."),
})
}

func testIndexer(name string, t *testing.T, indexer Indexer) {

+ 3
- 1
modules/indexer/issues/indexer_test.go View File

@@ -23,7 +23,9 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", "..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", "..", ".."),
})
}

func TestBleveSearchIssues(t *testing.T) {

+ 3
- 1
modules/indexer/stats/indexer_test.go View File

@@ -23,7 +23,9 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", "..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", "..", ".."),
})
}

func TestRepoStatsIndex(t *testing.T) {

+ 3
- 1
modules/notification/action/action_test.go View File

@@ -18,7 +18,9 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", "..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", "..", ".."),
})
}

func TestRenameRepoAction(t *testing.T) {

+ 3
- 1
modules/repository/main_test.go View File

@@ -12,5 +12,7 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
})
}

+ 3
- 1
routers/api/v1/repo/main_test.go View File

@@ -12,5 +12,7 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", "..", "..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", "..", "..", ".."),
})
}

+ 3
- 1
routers/web/admin/main_test.go View File

@@ -12,5 +12,7 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", "..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", "..", ".."),
})
}

+ 3
- 1
routers/web/auth/main_test.go View File

@@ -12,5 +12,7 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", "..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", "..", ".."),
})
}

+ 3
- 1
routers/web/repo/main_test.go View File

@@ -12,5 +12,7 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", "..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", "..", ".."),
})
}

+ 3
- 1
routers/web/user/main_test.go View File

@@ -12,5 +12,7 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", "..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", "..", ".."),
})
}

+ 3
- 1
routers/web/user/setting/main_test.go View File

@@ -12,5 +12,7 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", "..", "..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", "..", "..", ".."),
})
}

+ 3
- 1
services/asymkey/main_test.go View File

@@ -12,5 +12,7 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
})
}

+ 3
- 1
services/attachment/attachment_test.go View File

@@ -17,7 +17,9 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
})
}

func TestUploadAttachment(t *testing.T) {

+ 3
- 1
services/gitdiff/main_test.go View File

@@ -12,5 +12,7 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
})
}

+ 3
- 1
services/issue/main_test.go View File

@@ -12,5 +12,7 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
})
}

+ 3
- 1
services/mailer/main_test.go View File

@@ -12,5 +12,7 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
})
}

+ 3
- 1
services/migrations/main_test.go View File

@@ -17,7 +17,9 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
})
}

func timePtr(t time.Time) *time.Time {

+ 3
- 1
services/org/org_test.go View File

@@ -17,7 +17,9 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
})
}

func TestDeleteOrganization(t *testing.T) {

+ 3
- 1
services/pull/main_test.go View File

@@ -13,5 +13,7 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
})
}

+ 3
- 1
services/release/release_test.go View File

@@ -21,7 +21,9 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
})
}

func TestRelease_Create(t *testing.T) {

+ 3
- 1
services/repository/archiver/archiver_test.go View File

@@ -17,7 +17,9 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", "..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", "..", ".."),
})
}

func TestArchive_Basic(t *testing.T) {

+ 3
- 1
services/repository/files/content_test.go View File

@@ -16,7 +16,9 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", "..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", "..", ".."),
})
}

func getExpectedReadmeContentsResponse() *api.ContentsResponse {

+ 3
- 1
services/repository/main_test.go View File

@@ -12,5 +12,7 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
})
}

+ 3
- 1
services/user/user_test.go View File

@@ -20,7 +20,9 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
})
}

func TestDeleteUser(t *testing.T) {

+ 3
- 1
services/webhook/main_test.go View File

@@ -14,5 +14,7 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
})
}

+ 3
- 1
services/wiki/wiki_test.go View File

@@ -20,7 +20,9 @@ import (
)

func TestMain(m *testing.M) {
unittest.MainTest(m, filepath.Join("..", ".."))
unittest.MainTest(m, &unittest.TestOptions{
GiteaRootPath: filepath.Join("..", ".."),
})
}

func TestWikiNameToSubURL(t *testing.T) {

Loading…
Cancel
Save