mirror of
https://github.com/go-gitea/gitea.git
synced 2025-12-16 22:15:43 +08:00
Merge 9acb9377af into d2a372fc59
This commit is contained in:
commit
e8ae1bc96b
3
.github/workflows/pull-db-tests.yml
vendored
3
.github/workflows/pull-db-tests.yml
vendored
@ -138,6 +138,9 @@ jobs:
|
|||||||
- name: unit-tests
|
- name: unit-tests
|
||||||
run: make unit-test-coverage test-check
|
run: make unit-test-coverage test-check
|
||||||
env:
|
env:
|
||||||
|
GITEA_ROOT: foo
|
||||||
|
GITEA_CONF: bar
|
||||||
|
GITEA_CUSTOM: baz
|
||||||
TAGS: bindata
|
TAGS: bindata
|
||||||
RACE_ENABLED: true
|
RACE_ENABLED: true
|
||||||
GITHUB_READ_TOKEN: ${{ secrets.GITHUB_READ_TOKEN }}
|
GITHUB_READ_TOKEN: ${{ secrets.GITHUB_READ_TOKEN }}
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import (
|
|||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
user_model "code.gitea.io/gitea/models/user"
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"code.gitea.io/gitea/modules/test"
|
"code.gitea.io/gitea/modules/test"
|
||||||
|
"code.gitea.io/gitea/tests/env"
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
"xorm.io/xorm"
|
"xorm.io/xorm"
|
||||||
@ -112,3 +113,8 @@ func BenchmarkFixturesLoader(b *testing.B) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestMain(m *testing.M) {
|
||||||
|
env.Filter([]string{"GITEA_TEST_"}, []string{"GITEA_"})
|
||||||
|
m.Run()
|
||||||
|
}
|
||||||
|
|||||||
@ -23,6 +23,7 @@ import (
|
|||||||
"code.gitea.io/gitea/modules/tempdir"
|
"code.gitea.io/gitea/modules/tempdir"
|
||||||
"code.gitea.io/gitea/modules/test"
|
"code.gitea.io/gitea/modules/test"
|
||||||
"code.gitea.io/gitea/modules/util"
|
"code.gitea.io/gitea/modules/util"
|
||||||
|
"code.gitea.io/gitea/tests/env"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"xorm.io/xorm"
|
"xorm.io/xorm"
|
||||||
@ -73,6 +74,7 @@ type TestOptions struct {
|
|||||||
// MainTest a reusable TestMain(..) function for unit tests that need to use a
|
// MainTest a reusable TestMain(..) function for unit tests that need to use a
|
||||||
// test database. Creates the test database, and sets necessary settings.
|
// test database. Creates the test database, and sets necessary settings.
|
||||||
func MainTest(m *testing.M, testOptsArg ...*TestOptions) {
|
func MainTest(m *testing.M, testOptsArg ...*TestOptions) {
|
||||||
|
env.Filter([]string{"GITEA_TEST_"}, []string{"GITEA_"})
|
||||||
testOpts := util.OptionalArg(testOptsArg, &TestOptions{})
|
testOpts := util.OptionalArg(testOptsArg, &TestOptions{})
|
||||||
giteaRoot = test.SetupGiteaRoot()
|
giteaRoot = test.SetupGiteaRoot()
|
||||||
setting.CustomPath = filepath.Join(giteaRoot, "custom")
|
setting.CustomPath = filepath.Join(giteaRoot, "custom")
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import (
|
|||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
"code.gitea.io/gitea/modules/util"
|
"code.gitea.io/gitea/modules/util"
|
||||||
|
"code.gitea.io/gitea/tests/env"
|
||||||
)
|
)
|
||||||
|
|
||||||
func testRun(m *testing.M) error {
|
func testRun(m *testing.M) error {
|
||||||
@ -33,6 +34,7 @@ func testRun(m *testing.M) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
|
env.Filter([]string{"GITEA_TEST_"}, []string{"GITEA_"})
|
||||||
if err := testRun(m); err != nil {
|
if err := testRun(m); err != nil {
|
||||||
_, _ = fmt.Fprintf(os.Stderr, "Test failed: %v", err)
|
_, _ = fmt.Fprintf(os.Stderr, "Test failed: %v", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
|||||||
@ -10,6 +10,7 @@ import (
|
|||||||
|
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
"code.gitea.io/gitea/modules/tempdir"
|
"code.gitea.io/gitea/modules/tempdir"
|
||||||
|
"code.gitea.io/gitea/tests/env"
|
||||||
|
|
||||||
"github.com/hashicorp/go-version"
|
"github.com/hashicorp/go-version"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
@ -36,6 +37,7 @@ func testRun(m *testing.M) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
|
env.Filter([]string{"GITEA_TEST_"}, []string{"GITEA_"})
|
||||||
if err := testRun(m); err != nil {
|
if err := testRun(m); err != nil {
|
||||||
_, _ = fmt.Fprintf(os.Stderr, "Test failed: %v", err)
|
_, _ = fmt.Fprintf(os.Stderr, "Test failed: %v", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
|||||||
@ -10,11 +10,13 @@ import (
|
|||||||
|
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
"code.gitea.io/gitea/modules/tempdir"
|
"code.gitea.io/gitea/modules/tempdir"
|
||||||
|
"code.gitea.io/gitea/tests/env"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
|
env.Filter([]string{"GITEA_TEST_"}, []string{"GITEA_"})
|
||||||
gitHomePath, cleanup, err := tempdir.OsTempDir("gitea-test").MkdirTempRandom("git-home")
|
gitHomePath, cleanup, err := tempdir.OsTempDir("gitea-test").MkdirTempRandom("git-home")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
_, _ = fmt.Fprintf(os.Stderr, "unable to create temp dir: %v", err)
|
_, _ = fmt.Fprintf(os.Stderr, "unable to create temp dir: %v", err)
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import (
|
|||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
"code.gitea.io/gitea/modules/util"
|
"code.gitea.io/gitea/modules/util"
|
||||||
|
"code.gitea.io/gitea/tests/env"
|
||||||
)
|
)
|
||||||
|
|
||||||
func testRun(m *testing.M) error {
|
func testRun(m *testing.M) error {
|
||||||
@ -33,6 +34,7 @@ func testRun(m *testing.M) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
|
env.Filter([]string{"GITEA_TEST_"}, []string{"GITEA_"})
|
||||||
if err := testRun(m); err != nil {
|
if err := testRun(m); err != nil {
|
||||||
_, _ = fmt.Fprintf(os.Stderr, "Test failed: %v", err)
|
_, _ = fmt.Fprintf(os.Stderr, "Test failed: %v", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
|||||||
@ -12,9 +12,11 @@ import (
|
|||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
"code.gitea.io/gitea/modules/tempdir"
|
"code.gitea.io/gitea/modules/tempdir"
|
||||||
"code.gitea.io/gitea/modules/test"
|
"code.gitea.io/gitea/modules/test"
|
||||||
|
"code.gitea.io/gitea/tests/env"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
|
env.Filter([]string{"GITEA_TEST_"}, []string{"GITEA_"})
|
||||||
gitHomePath, cleanup, err := tempdir.OsTempDir("gitea-test").MkdirTempRandom("git-home")
|
gitHomePath, cleanup, err := tempdir.OsTempDir("gitea-test").MkdirTempRandom("git-home")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Unable to create temp dir: %v", err)
|
log.Fatal("Unable to create temp dir: %v", err)
|
||||||
|
|||||||
@ -9,9 +9,11 @@ import (
|
|||||||
|
|
||||||
"code.gitea.io/gitea/modules/markup"
|
"code.gitea.io/gitea/modules/markup"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
"code.gitea.io/gitea/tests/env"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
|
env.Filter([]string{"GITEA_TEST_"}, []string{"GITEA_"})
|
||||||
setting.IsInTesting = true
|
setting.IsInTesting = true
|
||||||
markup.RenderBehaviorForTesting.DisableAdditionalAttributes = true
|
markup.RenderBehaviorForTesting.DisableAdditionalAttributes = true
|
||||||
os.Exit(m.Run())
|
os.Exit(m.Run())
|
||||||
|
|||||||
@ -9,9 +9,11 @@ import (
|
|||||||
|
|
||||||
"code.gitea.io/gitea/modules/markup"
|
"code.gitea.io/gitea/modules/markup"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
"code.gitea.io/gitea/tests/env"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
|
env.Filter([]string{"GITEA_TEST_"}, []string{"GITEA_"})
|
||||||
setting.IsInTesting = true
|
setting.IsInTesting = true
|
||||||
markup.RenderBehaviorForTesting.DisableAdditionalAttributes = true
|
markup.RenderBehaviorForTesting.DisableAdditionalAttributes = true
|
||||||
os.Exit(m.Run())
|
os.Exit(m.Run())
|
||||||
|
|||||||
@ -11,11 +11,13 @@ import (
|
|||||||
"code.gitea.io/gitea/modules/markup"
|
"code.gitea.io/gitea/modules/markup"
|
||||||
"code.gitea.io/gitea/modules/markup/orgmode"
|
"code.gitea.io/gitea/modules/markup/orgmode"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
"code.gitea.io/gitea/tests/env"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
|
env.Filter([]string{"GITEA_TEST_"}, []string{"GITEA_"})
|
||||||
setting.AppURL = "http://localhost:3000/"
|
setting.AppURL = "http://localhost:3000/"
|
||||||
setting.IsInTesting = true
|
setting.IsInTesting = true
|
||||||
os.Exit(m.Run())
|
os.Exit(m.Run())
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import (
|
|||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
"code.gitea.io/gitea/modules/test"
|
"code.gitea.io/gitea/modules/test"
|
||||||
"code.gitea.io/gitea/modules/translation"
|
"code.gitea.io/gitea/modules/translation"
|
||||||
|
"code.gitea.io/gitea/tests/env"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
@ -48,6 +49,7 @@ mail@domain.com
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
|
env.Filter([]string{"GITEA_TEST_"}, []string{"GITEA_"})
|
||||||
setting.Markdown.RenderOptionsComment.ShortIssuePattern = true
|
setting.Markdown.RenderOptionsComment.ShortIssuePattern = true
|
||||||
markup.Init(&markup.RenderHelperFuncs{
|
markup.Init(&markup.RenderHelperFuncs{
|
||||||
IsUsernameMentionable: func(ctx context.Context, username string) bool {
|
IsUsernameMentionable: func(ctx context.Context, username string) bool {
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import (
|
|||||||
|
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
"code.gitea.io/gitea/modules/translation"
|
"code.gitea.io/gitea/modules/translation"
|
||||||
|
"code.gitea.io/gitea/tests/env"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
@ -26,6 +27,7 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func TestMain(m *testing.M) {
|
func TestMain(m *testing.M) {
|
||||||
|
env.Filter([]string{"GITEA_TEST_"}, []string{"GITEA_"})
|
||||||
setting.StaticRootPath = "../../"
|
setting.StaticRootPath = "../../"
|
||||||
setting.Names = []string{"english"}
|
setting.Names = []string{"english"}
|
||||||
setting.Langs = []string{"en-US"}
|
setting.Langs = []string{"en-US"}
|
||||||
|
|||||||
31
tests/env/filter.go
vendored
Normal file
31
tests/env/filter.go
vendored
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
// Copyright 2025 The Gitea Authors. All rights reserved.
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
package env
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func Filter(include, exclude []string) {
|
||||||
|
env := os.Environ()
|
||||||
|
for _, v := range env {
|
||||||
|
included := false
|
||||||
|
for _, i := range include {
|
||||||
|
if strings.HasPrefix(v, i) {
|
||||||
|
included = true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if !included {
|
||||||
|
for _, e := range exclude {
|
||||||
|
if strings.HasPrefix(v, e) {
|
||||||
|
parts := strings.SplitN(v, "=", 2)
|
||||||
|
os.Unsetenv(parts[0])
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
39
tests/env/filter_test.go
vendored
Normal file
39
tests/env/filter_test.go
vendored
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
// Copyright 2025 The Gitea Authors. All rights reserved.
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
package env
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestFilter(t *testing.T) {
|
||||||
|
t.Setenv("GITEA_FOO", "bar")
|
||||||
|
t.Setenv("FOO", "bar")
|
||||||
|
Filter([]string{}, []string{"GITEA_"})
|
||||||
|
if os.Getenv("GITEA_FOO") != "" {
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
if os.Getenv("FOO") != "bar" {
|
||||||
|
t.FailNow()
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Setenv("GITEA_TEST_FOO", "bar")
|
||||||
|
t.Setenv("GITEA_BAR", "foo")
|
||||||
|
t.Setenv("GITEA_BAR_BAZ", "foo")
|
||||||
|
t.Setenv("GITEA_BAZ", "huz")
|
||||||
|
Filter([]string{"GITEA_TEST_", "GITEA_BAR="}, []string{"GITEA_"})
|
||||||
|
if os.Getenv("GITEA_BAR") != "foo" {
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
if os.Getenv("GITEA_TEST_FOO") != "bar" {
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
if os.Getenv("GITEA_BAZ") != "" {
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
if os.Getenv("GITEA_BAR_BAZ") != "" {
|
||||||
|
t.Fail()
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -22,6 +22,7 @@ import (
|
|||||||
"code.gitea.io/gitea/modules/testlogger"
|
"code.gitea.io/gitea/modules/testlogger"
|
||||||
"code.gitea.io/gitea/modules/util"
|
"code.gitea.io/gitea/modules/util"
|
||||||
"code.gitea.io/gitea/routers"
|
"code.gitea.io/gitea/routers"
|
||||||
|
"code.gitea.io/gitea/tests/env"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
@ -29,6 +30,8 @@ import (
|
|||||||
func InitTest(requireGitea bool) {
|
func InitTest(requireGitea bool) {
|
||||||
testlogger.Init()
|
testlogger.Init()
|
||||||
|
|
||||||
|
env.Filter([]string{"GITEA_TEST_", "GITEA_ROOT=", "GITEA_CONF="}, []string{"GITEA_"})
|
||||||
|
|
||||||
giteaRoot := test.SetupGiteaRoot()
|
giteaRoot := test.SetupGiteaRoot()
|
||||||
|
|
||||||
// TODO: Speedup tests that rely on the event source ticker, confirm whether there is any bug or failure.
|
// TODO: Speedup tests that rely on the event source ticker, confirm whether there is any bug or failure.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user