diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2022-04-14 21:58:21 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-14 21:58:21 +0800 |
commit | b8911fb45673fdc3fce587892c4d9215e7c15019 (patch) | |
tree | df72d047049f53cdbe9cb5d16a03b814f29e9ca6 /models | |
parent | 4dabc212c70d0cb0874d3af61d1ea24abd468f7e (diff) | |
download | gitea-b8911fb45673fdc3fce587892c4d9215e7c15019.tar.gz gitea-b8911fb45673fdc3fce587892c4d9215e7c15019.zip |
Use a struct as test options (#19393)
* Use a struct as test options
* Fix name
* Fix test
Diffstat (limited to 'models')
-rw-r--r-- | models/admin/main_test.go | 7 | ||||
-rw-r--r-- | models/asymkey/main_test.go | 19 | ||||
-rw-r--r-- | models/auth/main_test.go | 17 | ||||
-rw-r--r-- | models/db/paginator/main_test.go | 4 | ||||
-rw-r--r-- | models/issues/main_test.go | 15 | ||||
-rw-r--r-- | models/main_test.go | 4 | ||||
-rw-r--r-- | models/organization/main_test.go | 21 | ||||
-rw-r--r-- | models/project/main_test.go | 15 | ||||
-rw-r--r-- | models/repo/main_test.go | 29 | ||||
-rw-r--r-- | models/unittest/testdb.go | 37 | ||||
-rw-r--r-- | models/user/main_test.go | 21 | ||||
-rw-r--r-- | models/webhook/main_test.go | 8 |
12 files changed, 125 insertions, 72 deletions
diff --git a/models/admin/main_test.go b/models/admin/main_test.go index f6c9dce57a..693b70fbf7 100644 --- a/models/admin/main_test.go +++ b/models/admin/main_test.go @@ -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"}, + }) } diff --git a/models/asymkey/main_test.go b/models/asymkey/main_test.go index 1c4f7752e2..9f53e335fe 100644 --- a/models/asymkey/main_test.go +++ b/models/asymkey/main_test.go @@ -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", + }, + }) } diff --git a/models/auth/main_test.go b/models/auth/main_test.go index 4255f488fe..ccbdd4e81c 100644 --- a/models/auth/main_test.go +++ b/models/auth/main_test.go @@ -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", + }, + }) } diff --git a/models/db/paginator/main_test.go b/models/db/paginator/main_test.go index 601ed89710..1127987e53 100644 --- a/models/db/paginator/main_test.go +++ b/models/db/paginator/main_test.go @@ -12,5 +12,7 @@ import ( ) func TestMain(m *testing.M) { - unittest.MainTest(m, filepath.Join("..", "..", "..")) + unittest.MainTest(m, &unittest.TestOptions{ + GiteaRootPath: filepath.Join("..", "..", ".."), + }) } diff --git a/models/issues/main_test.go b/models/issues/main_test.go index bec6176abd..30f6ff02fb 100644 --- a/models/issues/main_test.go +++ b/models/issues/main_test.go @@ -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", + }, + }) } diff --git a/models/main_test.go b/models/main_test.go index 00da59cbe6..96231e4704 100644 --- a/models/main_test.go +++ b/models/main_test.go @@ -37,5 +37,7 @@ func TestFixturesAreConsistent(t *testing.T) { } func TestMain(m *testing.M) { - unittest.MainTest(m, "..") + unittest.MainTest(m, &unittest.TestOptions{ + GiteaRootPath: "..", + }) } diff --git a/models/organization/main_test.go b/models/organization/main_test.go index a2cb911021..711b86b9bd 100644 --- a/models/organization/main_test.go +++ b/models/organization/main_test.go @@ -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", + }, + }) } diff --git a/models/project/main_test.go b/models/project/main_test.go index 5296a0f40e..2e97b3a5ef 100644 --- a/models/project/main_test.go +++ b/models/project/main_test.go @@ -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", + }, + }) } diff --git a/models/repo/main_test.go b/models/repo/main_test.go index fdd6c3f4d3..e375e8a9f3 100644 --- a/models/repo/main_test.go +++ b/models/repo/main_test.go @@ -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", + }, + }) } diff --git a/models/unittest/testdb.go b/models/unittest/testdb.go index 4f1bd63f29..117614a7a4 100644 --- a/models/unittest/testdb.go +++ b/models/unittest/testdb.go @@ -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) } diff --git a/models/user/main_test.go b/models/user/main_test.go index 55e5f9341c..09af550a95 100644 --- a/models/user/main_test.go +++ b/models/user/main_test.go @@ -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", + }, + }) } diff --git a/models/webhook/main_test.go b/models/webhook/main_test.go index 89c947b061..39ef2da6a2 100644 --- a/models/webhook/main_test.go +++ b/models/webhook/main_test.go @@ -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", + }, + }) } |