summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2022-04-14 21:58:21 +0800
committerGitHub <noreply@github.com>2022-04-14 21:58:21 +0800
commitb8911fb45673fdc3fce587892c4d9215e7c15019 (patch)
treedf72d047049f53cdbe9cb5d16a03b814f29e9ca6 /models
parent4dabc212c70d0cb0874d3af61d1ea24abd468f7e (diff)
downloadgitea-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.go7
-rw-r--r--models/asymkey/main_test.go19
-rw-r--r--models/auth/main_test.go17
-rw-r--r--models/db/paginator/main_test.go4
-rw-r--r--models/issues/main_test.go15
-rw-r--r--models/main_test.go4
-rw-r--r--models/organization/main_test.go21
-rw-r--r--models/project/main_test.go15
-rw-r--r--models/repo/main_test.go29
-rw-r--r--models/unittest/testdb.go37
-rw-r--r--models/user/main_test.go21
-rw-r--r--models/webhook/main_test.go8
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",
+ },
+ })
}