mirror of
https://github.com/go-gitea/gitea
synced 2025-07-04 01:27:20 +00:00
Refactor some tests (#34580)
1. use `test.MockVariableValue` as much as possible 2. avoid `time.Sleep` as much as possible
This commit is contained in:
@ -8,6 +8,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/models/auth"
|
"code.gitea.io/gitea/models/auth"
|
||||||
|
"code.gitea.io/gitea/modules/test"
|
||||||
"code.gitea.io/gitea/services/auth/source/ldap"
|
"code.gitea.io/gitea/services/auth/source/ldap"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
@ -16,9 +17,7 @@ import (
|
|||||||
|
|
||||||
func TestAddLdapBindDn(t *testing.T) {
|
func TestAddLdapBindDn(t *testing.T) {
|
||||||
// Mock cli functions to do not exit on error
|
// Mock cli functions to do not exit on error
|
||||||
osExiter := cli.OsExiter
|
defer test.MockVariableValue(&cli.OsExiter, func(code int) {})()
|
||||||
defer func() { cli.OsExiter = osExiter }()
|
|
||||||
cli.OsExiter = func(code int) {}
|
|
||||||
|
|
||||||
// Test cases
|
// Test cases
|
||||||
cases := []struct {
|
cases := []struct {
|
||||||
@ -256,9 +255,7 @@ func TestAddLdapBindDn(t *testing.T) {
|
|||||||
|
|
||||||
func TestAddLdapSimpleAuth(t *testing.T) {
|
func TestAddLdapSimpleAuth(t *testing.T) {
|
||||||
// Mock cli functions to do not exit on error
|
// Mock cli functions to do not exit on error
|
||||||
osExiter := cli.OsExiter
|
defer test.MockVariableValue(&cli.OsExiter, func(code int) {})()
|
||||||
defer func() { cli.OsExiter = osExiter }()
|
|
||||||
cli.OsExiter = func(code int) {}
|
|
||||||
|
|
||||||
// Test cases
|
// Test cases
|
||||||
cases := []struct {
|
cases := []struct {
|
||||||
@ -487,9 +484,7 @@ func TestAddLdapSimpleAuth(t *testing.T) {
|
|||||||
|
|
||||||
func TestUpdateLdapBindDn(t *testing.T) {
|
func TestUpdateLdapBindDn(t *testing.T) {
|
||||||
// Mock cli functions to do not exit on error
|
// Mock cli functions to do not exit on error
|
||||||
osExiter := cli.OsExiter
|
defer test.MockVariableValue(&cli.OsExiter, func(code int) {})()
|
||||||
defer func() { cli.OsExiter = osExiter }()
|
|
||||||
cli.OsExiter = func(code int) {}
|
|
||||||
|
|
||||||
// Test cases
|
// Test cases
|
||||||
cases := []struct {
|
cases := []struct {
|
||||||
@ -964,9 +959,7 @@ func TestUpdateLdapBindDn(t *testing.T) {
|
|||||||
|
|
||||||
func TestUpdateLdapSimpleAuth(t *testing.T) {
|
func TestUpdateLdapSimpleAuth(t *testing.T) {
|
||||||
// Mock cli functions to do not exit on error
|
// Mock cli functions to do not exit on error
|
||||||
osExiter := cli.OsExiter
|
defer test.MockVariableValue(&cli.OsExiter, func(code int) {})()
|
||||||
defer func() { cli.OsExiter = osExiter }()
|
|
||||||
cli.OsExiter = func(code int) {}
|
|
||||||
|
|
||||||
// Test cases
|
// Test cases
|
||||||
cases := []struct {
|
cases := []struct {
|
||||||
|
@ -23,12 +23,6 @@ func NoHTTPRedirector() {
|
|||||||
graceful.GetManager().InformCleanup()
|
graceful.GetManager().InformCleanup()
|
||||||
}
|
}
|
||||||
|
|
||||||
// NoMainListener tells our cleanup routine that we will not be using a possibly provided listener
|
|
||||||
// for our main HTTP/HTTPS service
|
|
||||||
func NoMainListener() {
|
|
||||||
graceful.GetManager().InformCleanup()
|
|
||||||
}
|
|
||||||
|
|
||||||
// NoInstallListener tells our cleanup routine that we will not be using a possibly provided listener
|
// NoInstallListener tells our cleanup routine that we will not be using a possibly provided listener
|
||||||
// for our install HTTP/HTTPS service
|
// for our install HTTP/HTTPS service
|
||||||
func NoInstallListener() {
|
func NoInstallListener() {
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
id: 2
|
id: 2
|
||||||
hook_id: 1
|
hook_id: 1
|
||||||
uuid: uuid2
|
uuid: uuid2
|
||||||
is_delivered: false
|
is_delivered: true
|
||||||
|
|
||||||
-
|
-
|
||||||
id: 3
|
id: 3
|
||||||
|
@ -39,8 +39,6 @@ func TestPushMirrorsIterate(t *testing.T) {
|
|||||||
Interval: 0,
|
Interval: 0,
|
||||||
})
|
})
|
||||||
|
|
||||||
time.Sleep(1 * time.Millisecond)
|
|
||||||
|
|
||||||
repo_model.PushMirrorsIterate(db.DefaultContext, 1, func(idx int, bean any) error {
|
repo_model.PushMirrorsIterate(db.DefaultContext, 1, func(idx int, bean any) error {
|
||||||
m, ok := bean.(*repo_model.PushMirror)
|
m, ok := bean.(*repo_model.PushMirror)
|
||||||
assert.True(t, ok)
|
assert.True(t, ok)
|
||||||
|
@ -513,11 +513,8 @@ func TestIsUserVisibleToViewer(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Test_ValidateUser(t *testing.T) {
|
func Test_ValidateUser(t *testing.T) {
|
||||||
oldSetting := setting.Service.AllowedUserVisibilityModesSlice
|
defer test.MockVariableValue(&setting.Service.AllowedUserVisibilityModesSlice, []bool{true, false, true})()
|
||||||
defer func() {
|
|
||||||
setting.Service.AllowedUserVisibilityModesSlice = oldSetting
|
|
||||||
}()
|
|
||||||
setting.Service.AllowedUserVisibilityModesSlice = []bool{true, false, true}
|
|
||||||
kases := map[*user_model.User]bool{
|
kases := map[*user_model.User]bool{
|
||||||
{ID: 1, Visibility: structs.VisibleTypePublic}: true,
|
{ID: 1, Visibility: structs.VisibleTypePublic}: true,
|
||||||
{ID: 2, Visibility: structs.VisibleTypeLimited}: false,
|
{ID: 2, Visibility: structs.VisibleTypeLimited}: false,
|
||||||
@ -586,12 +583,7 @@ func TestDisabledUserFeatures(t *testing.T) {
|
|||||||
testValues := container.SetOf(setting.UserFeatureDeletion,
|
testValues := container.SetOf(setting.UserFeatureDeletion,
|
||||||
setting.UserFeatureManageSSHKeys,
|
setting.UserFeatureManageSSHKeys,
|
||||||
setting.UserFeatureManageGPGKeys)
|
setting.UserFeatureManageGPGKeys)
|
||||||
|
defer test.MockVariableValue(&setting.Admin.ExternalUserDisableFeatures, testValues)()
|
||||||
oldSetting := setting.Admin.ExternalUserDisableFeatures
|
|
||||||
defer func() {
|
|
||||||
setting.Admin.ExternalUserDisableFeatures = oldSetting
|
|
||||||
}()
|
|
||||||
setting.Admin.ExternalUserDisableFeatures = testValues
|
|
||||||
|
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1})
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1})
|
||||||
|
|
||||||
|
@ -26,7 +26,8 @@ func (s *testDiscoveredInfo) OpLocalID() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestTimedDiscoveryCache(t *testing.T) {
|
func TestTimedDiscoveryCache(t *testing.T) {
|
||||||
dc := newTimedDiscoveryCache(1 * time.Second)
|
ttl := 50 * time.Millisecond
|
||||||
|
dc := newTimedDiscoveryCache(ttl)
|
||||||
|
|
||||||
// Put some initial values
|
// Put some initial values
|
||||||
dc.Put("foo", &testDiscoveredInfo{}) // openid.opEndpoint: "a", openid.opLocalID: "b", openid.claimedID: "c"})
|
dc.Put("foo", &testDiscoveredInfo{}) // openid.opEndpoint: "a", openid.opLocalID: "b", openid.claimedID: "c"})
|
||||||
@ -41,8 +42,8 @@ func TestTimedDiscoveryCache(t *testing.T) {
|
|||||||
// Attempt to get a non-existent value
|
// Attempt to get a non-existent value
|
||||||
assert.Nil(t, dc.Get("bar"))
|
assert.Nil(t, dc.Get("bar"))
|
||||||
|
|
||||||
// Sleep one second and try retrieve again
|
// Sleep for a while and try to retrieve again
|
||||||
time.Sleep(1 * time.Second)
|
time.Sleep(ttl * 3 / 2)
|
||||||
|
|
||||||
assert.Nil(t, dc.Get("foo"))
|
assert.Nil(t, dc.Get("foo"))
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
package tests
|
package tests
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"slices"
|
"slices"
|
||||||
"testing"
|
"testing"
|
||||||
@ -40,7 +39,7 @@ func TestIndexer(t *testing.T, indexer internal.Indexer) {
|
|||||||
data[v.ID] = v
|
data[v.ID] = v
|
||||||
}
|
}
|
||||||
require.NoError(t, indexer.Index(t.Context(), d...))
|
require.NoError(t, indexer.Index(t.Context(), d...))
|
||||||
require.NoError(t, waitData(indexer, int64(len(data))))
|
waitData(t, indexer, int64(len(data)))
|
||||||
}
|
}
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
@ -54,13 +53,13 @@ func TestIndexer(t *testing.T, indexer internal.Indexer) {
|
|||||||
for _, v := range c.ExtraData {
|
for _, v := range c.ExtraData {
|
||||||
data[v.ID] = v
|
data[v.ID] = v
|
||||||
}
|
}
|
||||||
require.NoError(t, waitData(indexer, int64(len(data))))
|
waitData(t, indexer, int64(len(data)))
|
||||||
defer func() {
|
defer func() {
|
||||||
for _, v := range c.ExtraData {
|
for _, v := range c.ExtraData {
|
||||||
require.NoError(t, indexer.Delete(t.Context(), v.ID))
|
require.NoError(t, indexer.Delete(t.Context(), v.ID))
|
||||||
delete(data, v.ID)
|
delete(data, v.ID)
|
||||||
}
|
}
|
||||||
require.NoError(t, waitData(indexer, int64(len(data))))
|
waitData(t, indexer, int64(len(data)))
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -751,22 +750,10 @@ func countIndexerData(data map[int64]*internal.IndexerData, f func(v *internal.I
|
|||||||
|
|
||||||
// waitData waits for the indexer to index all data.
|
// waitData waits for the indexer to index all data.
|
||||||
// Some engines like Elasticsearch index data asynchronously, so we need to wait for a while.
|
// Some engines like Elasticsearch index data asynchronously, so we need to wait for a while.
|
||||||
func waitData(indexer internal.Indexer, total int64) error {
|
func waitData(t *testing.T, indexer internal.Indexer, total int64) {
|
||||||
var actual int64
|
assert.Eventually(t, func() bool {
|
||||||
for i := 0; i < 100; i++ {
|
result, err := indexer.Search(t.Context(), &internal.SearchOptions{Paginator: &db.ListOptions{}})
|
||||||
result, err := indexer.Search(context.Background(), &internal.SearchOptions{
|
require.NoError(t, err)
|
||||||
Paginator: &db.ListOptions{
|
return result.Total == total
|
||||||
PageSize: 0,
|
}, 10*time.Second, 100*time.Millisecond, "expected total=%d", total)
|
||||||
},
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
actual = result.Total
|
|
||||||
if actual == total {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
time.Sleep(100 * time.Millisecond)
|
|
||||||
}
|
|
||||||
return fmt.Errorf("waitData: expected %d, actual %d", total, actual)
|
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,8 @@ package setting
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"code.gitea.io/gitea/modules/test"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -36,12 +38,8 @@ diff.algorithm = other
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestGitReflog(t *testing.T) {
|
func TestGitReflog(t *testing.T) {
|
||||||
oldGit := Git
|
defer test.MockVariableValue(&Git)
|
||||||
oldGitConfig := GitConfig
|
defer test.MockVariableValue(&GitConfig)
|
||||||
defer func() {
|
|
||||||
Git = oldGit
|
|
||||||
GitConfig = oldGitConfig
|
|
||||||
}()
|
|
||||||
|
|
||||||
// default reflog config without legacy options
|
// default reflog config without legacy options
|
||||||
cfg, err := NewConfigProviderFromData(``)
|
cfg, err := NewConfigProviderFromData(``)
|
||||||
|
@ -7,6 +7,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
"code.gitea.io/gitea/modules/test"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
@ -47,7 +48,7 @@ func Test_IsValidURL(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Test_IsValidExternalURL(t *testing.T) {
|
func Test_IsValidExternalURL(t *testing.T) {
|
||||||
setting.AppURL = "https://try.gitea.io/"
|
defer test.MockVariableValue(&setting.AppURL, "https://try.gitea.io/")()
|
||||||
|
|
||||||
cases := []struct {
|
cases := []struct {
|
||||||
description string
|
description string
|
||||||
@ -89,7 +90,7 @@ func Test_IsValidExternalURL(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Test_IsValidExternalTrackerURLFormat(t *testing.T) {
|
func Test_IsValidExternalTrackerURLFormat(t *testing.T) {
|
||||||
setting.AppURL = "https://try.gitea.io/"
|
defer test.MockVariableValue(&setting.AppURL, "https://try.gitea.io/")()
|
||||||
|
|
||||||
cases := []struct {
|
cases := []struct {
|
||||||
description string
|
description string
|
||||||
|
@ -15,6 +15,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/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
"code.gitea.io/gitea/modules/test"
|
||||||
"code.gitea.io/gitea/modules/web"
|
"code.gitea.io/gitea/modules/web"
|
||||||
"code.gitea.io/gitea/services/context"
|
"code.gitea.io/gitea/services/context"
|
||||||
"code.gitea.io/gitea/services/contexttest"
|
"code.gitea.io/gitea/services/contexttest"
|
||||||
@ -24,23 +25,8 @@ import (
|
|||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func createSSHAuthorizedKeysTmpPath(t *testing.T) func() {
|
|
||||||
tmpDir := t.TempDir()
|
|
||||||
|
|
||||||
oldPath := setting.SSH.RootPath
|
|
||||||
setting.SSH.RootPath = tmpDir
|
|
||||||
|
|
||||||
return func() {
|
|
||||||
setting.SSH.RootPath = oldPath
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestAddReadOnlyDeployKey(t *testing.T) {
|
func TestAddReadOnlyDeployKey(t *testing.T) {
|
||||||
if deferable := createSSHAuthorizedKeysTmpPath(t); deferable != nil {
|
defer test.MockVariableValue(&setting.SSH.RootPath, t.TempDir())()
|
||||||
defer deferable()
|
|
||||||
} else {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
unittest.PrepareTestEnv(t)
|
unittest.PrepareTestEnv(t)
|
||||||
|
|
||||||
ctx, _ := contexttest.MockContext(t, "user2/repo1/settings/keys")
|
ctx, _ := contexttest.MockContext(t, "user2/repo1/settings/keys")
|
||||||
@ -64,11 +50,7 @@ func TestAddReadOnlyDeployKey(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestAddReadWriteOnlyDeployKey(t *testing.T) {
|
func TestAddReadWriteOnlyDeployKey(t *testing.T) {
|
||||||
if deferable := createSSHAuthorizedKeysTmpPath(t); deferable != nil {
|
defer test.MockVariableValue(&setting.SSH.RootPath, t.TempDir())()
|
||||||
defer deferable()
|
|
||||||
} else {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
unittest.PrepareTestEnv(t)
|
unittest.PrepareTestEnv(t)
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
"code.gitea.io/gitea/modules/test"
|
||||||
|
|
||||||
"github.com/gobwas/glob"
|
"github.com/gobwas/glob"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
@ -26,12 +27,7 @@ func TestRegisterForm_IsDomainAllowed_Empty(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestRegisterForm_IsDomainAllowed_InvalidEmail(t *testing.T) {
|
func TestRegisterForm_IsDomainAllowed_InvalidEmail(t *testing.T) {
|
||||||
oldService := setting.Service
|
defer test.MockVariableValue(&setting.Service.EmailDomainAllowList, []glob.Glob{glob.MustCompile("gitea.io")})()
|
||||||
defer func() {
|
|
||||||
setting.Service = oldService
|
|
||||||
}()
|
|
||||||
|
|
||||||
setting.Service.EmailDomainAllowList = []glob.Glob{glob.MustCompile("gitea.io")}
|
|
||||||
|
|
||||||
tt := []struct {
|
tt := []struct {
|
||||||
email string
|
email string
|
||||||
@ -48,12 +44,7 @@ func TestRegisterForm_IsDomainAllowed_InvalidEmail(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestRegisterForm_IsDomainAllowed_AllowedEmail(t *testing.T) {
|
func TestRegisterForm_IsDomainAllowed_AllowedEmail(t *testing.T) {
|
||||||
oldService := setting.Service
|
defer test.MockVariableValue(&setting.Service.EmailDomainAllowList, []glob.Glob{glob.MustCompile("gitea.io"), glob.MustCompile("*.allow")})()
|
||||||
defer func() {
|
|
||||||
setting.Service = oldService
|
|
||||||
}()
|
|
||||||
|
|
||||||
setting.Service.EmailDomainAllowList = []glob.Glob{glob.MustCompile("gitea.io"), glob.MustCompile("*.allow")}
|
|
||||||
|
|
||||||
tt := []struct {
|
tt := []struct {
|
||||||
email string
|
email string
|
||||||
@ -76,13 +67,7 @@ func TestRegisterForm_IsDomainAllowed_AllowedEmail(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestRegisterForm_IsDomainAllowed_BlockedEmail(t *testing.T) {
|
func TestRegisterForm_IsDomainAllowed_BlockedEmail(t *testing.T) {
|
||||||
oldService := setting.Service
|
defer test.MockVariableValue(&setting.Service.EmailDomainBlockList, []glob.Glob{glob.MustCompile("gitea.io"), glob.MustCompile("*.block")})()
|
||||||
defer func() {
|
|
||||||
setting.Service = oldService
|
|
||||||
}()
|
|
||||||
|
|
||||||
setting.Service.EmailDomainAllowList = nil
|
|
||||||
setting.Service.EmailDomainBlockList = []glob.Glob{glob.MustCompile("gitea.io"), glob.MustCompile("*.block")}
|
|
||||||
|
|
||||||
tt := []struct {
|
tt := []struct {
|
||||||
email string
|
email string
|
||||||
|
@ -13,6 +13,7 @@ import (
|
|||||||
user_model "code.gitea.io/gitea/models/user"
|
user_model "code.gitea.io/gitea/models/user"
|
||||||
"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/test"
|
||||||
"code.gitea.io/gitea/modules/util"
|
"code.gitea.io/gitea/modules/util"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
@ -38,7 +39,7 @@ func TestForkRepository(t *testing.T) {
|
|||||||
assert.False(t, repo_model.IsErrReachLimitOfRepo(err))
|
assert.False(t, repo_model.IsErrReachLimitOfRepo(err))
|
||||||
|
|
||||||
// change AllowForkWithoutMaximumLimit to false for the test
|
// change AllowForkWithoutMaximumLimit to false for the test
|
||||||
setting.Repository.AllowForkWithoutMaximumLimit = false
|
defer test.MockVariableValue(&setting.Repository.AllowForkWithoutMaximumLimit, false)()
|
||||||
// user has reached maximum limit of repositories
|
// user has reached maximum limit of repositories
|
||||||
user.MaxRepoCreation = 0
|
user.MaxRepoCreation = 0
|
||||||
fork2, err := ForkRepository(git.DefaultContext, user, user, ForkRepoOptions{
|
fork2, err := ForkRepository(git.DefaultContext, user, user, ForkRepoOptions{
|
||||||
|
@ -13,6 +13,7 @@ import (
|
|||||||
webhook_model "code.gitea.io/gitea/models/webhook"
|
webhook_model "code.gitea.io/gitea/models/webhook"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
api "code.gitea.io/gitea/modules/structs"
|
api "code.gitea.io/gitea/modules/structs"
|
||||||
|
"code.gitea.io/gitea/modules/test"
|
||||||
webhook_module "code.gitea.io/gitea/modules/webhook"
|
webhook_module "code.gitea.io/gitea/modules/webhook"
|
||||||
"code.gitea.io/gitea/services/convert"
|
"code.gitea.io/gitea/services/convert"
|
||||||
|
|
||||||
@ -84,7 +85,8 @@ func TestPrepareWebhooksBranchFilterNoMatch(t *testing.T) {
|
|||||||
|
|
||||||
func TestWebhookUserMail(t *testing.T) {
|
func TestWebhookUserMail(t *testing.T) {
|
||||||
require.NoError(t, unittest.PrepareTestDatabase())
|
require.NoError(t, unittest.PrepareTestDatabase())
|
||||||
setting.Service.NoReplyAddress = "no-reply.com"
|
defer test.MockVariableValue(&setting.Service.NoReplyAddress, "no-reply.com")()
|
||||||
|
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1})
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1})
|
||||||
assert.Equal(t, user.GetPlaceholderEmail(), convert.ToUser(db.DefaultContext, user, nil).Email)
|
assert.Equal(t, user.GetPlaceholderEmail(), convert.ToUser(db.DefaultContext, user, nil).Email)
|
||||||
assert.Equal(t, user.Email, convert.ToUser(db.DefaultContext, user, user).Email)
|
assert.Equal(t, user.Email, convert.ToUser(db.DefaultContext, user, user).Email)
|
||||||
|
@ -118,7 +118,6 @@ type mockTaskOutcome struct {
|
|||||||
result runnerv1.Result
|
result runnerv1.Result
|
||||||
outputs map[string]string
|
outputs map[string]string
|
||||||
logRows []*runnerv1.LogRow
|
logRows []*runnerv1.LogRow
|
||||||
execTime time.Duration
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *mockRunner) execTask(t *testing.T, task *runnerv1.Task, outcome *mockTaskOutcome) {
|
func (r *mockRunner) execTask(t *testing.T, task *runnerv1.Task, outcome *mockTaskOutcome) {
|
||||||
@ -145,7 +144,6 @@ func (r *mockRunner) execTask(t *testing.T, task *runnerv1.Task, outcome *mockTa
|
|||||||
sentOutputKeys = append(sentOutputKeys, outputKey)
|
sentOutputKeys = append(sentOutputKeys, outputKey)
|
||||||
assert.ElementsMatch(t, sentOutputKeys, resp.Msg.SentOutputs)
|
assert.ElementsMatch(t, sentOutputKeys, resp.Msg.SentOutputs)
|
||||||
}
|
}
|
||||||
time.Sleep(outcome.execTime)
|
|
||||||
resp, err := r.client.runnerServiceClient.UpdateTask(t.Context(), connect.NewRequest(&runnerv1.UpdateTaskRequest{
|
resp, err := r.client.runnerServiceClient.UpdateTask(t.Context(), connect.NewRequest(&runnerv1.UpdateTaskRequest{
|
||||||
State: &runnerv1.TaskState{
|
State: &runnerv1.TaskState{
|
||||||
Id: task.Id,
|
Id: task.Id,
|
||||||
|
@ -87,7 +87,7 @@ func TestPackageGo(t *testing.T) {
|
|||||||
AddBasicAuth(user.Name)
|
AddBasicAuth(user.Name)
|
||||||
MakeRequest(t, req, http.StatusConflict)
|
MakeRequest(t, req, http.StatusConflict)
|
||||||
|
|
||||||
time.Sleep(time.Second)
|
time.Sleep(time.Second) // Ensure the timestamp is different, then the "list" below can have stable order
|
||||||
|
|
||||||
content = createArchive(map[string][]byte{
|
content = createArchive(map[string][]byte{
|
||||||
packageName + "@" + packageVersion2 + "/go.mod": []byte(goModContent),
|
packageName + "@" + packageVersion2 + "/go.mod": []byte(goModContent),
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
"code.gitea.io/gitea/modules/json"
|
"code.gitea.io/gitea/modules/json"
|
||||||
"code.gitea.io/gitea/modules/lfs"
|
"code.gitea.io/gitea/modules/lfs"
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
"code.gitea.io/gitea/modules/test"
|
||||||
"code.gitea.io/gitea/tests"
|
"code.gitea.io/gitea/tests"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
@ -226,9 +227,7 @@ func TestAPILFSBatch(t *testing.T) {
|
|||||||
|
|
||||||
t.Run("FileTooBig", func(t *testing.T) {
|
t.Run("FileTooBig", func(t *testing.T) {
|
||||||
defer tests.PrintCurrentTest(t)()
|
defer tests.PrintCurrentTest(t)()
|
||||||
|
defer test.MockVariableValue(&setting.LFS.MaxFileSize, 2)()
|
||||||
oldMaxFileSize := setting.LFS.MaxFileSize
|
|
||||||
setting.LFS.MaxFileSize = 2
|
|
||||||
|
|
||||||
req := newRequest(t, &lfs.BatchRequest{
|
req := newRequest(t, &lfs.BatchRequest{
|
||||||
Operation: "upload",
|
Operation: "upload",
|
||||||
@ -243,8 +242,6 @@ func TestAPILFSBatch(t *testing.T) {
|
|||||||
assert.NotNil(t, br.Objects[0].Error)
|
assert.NotNil(t, br.Objects[0].Error)
|
||||||
assert.Equal(t, http.StatusUnprocessableEntity, br.Objects[0].Error.Code)
|
assert.Equal(t, http.StatusUnprocessableEntity, br.Objects[0].Error.Code)
|
||||||
assert.Equal(t, "Size must be less than or equal to 2", br.Objects[0].Error.Message)
|
assert.Equal(t, "Size must be less than or equal to 2", br.Objects[0].Error.Message)
|
||||||
|
|
||||||
setting.LFS.MaxFileSize = oldMaxFileSize
|
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("AddMeta", func(t *testing.T) {
|
t.Run("AddMeta", func(t *testing.T) {
|
||||||
|
@ -983,8 +983,6 @@ func TestPullAutoMergeAfterCommitStatusSucceedAndApprovalForAgitFlow(t *testing.
|
|||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
time.Sleep(2 * time.Second)
|
|
||||||
|
|
||||||
// reload pr again
|
// reload pr again
|
||||||
pr = unittest.AssertExistsAndLoadBean(t, &issues_model.PullRequest{ID: pr.ID})
|
pr = unittest.AssertExistsAndLoadBean(t, &issues_model.PullRequest{ID: pr.ID})
|
||||||
assert.False(t, pr.HasMerged)
|
assert.False(t, pr.HasMerged)
|
||||||
@ -997,8 +995,6 @@ func TestPullAutoMergeAfterCommitStatusSucceedAndApprovalForAgitFlow(t *testing.
|
|||||||
htmlDoc := NewHTMLParser(t, resp.Body)
|
htmlDoc := NewHTMLParser(t, resp.Body)
|
||||||
testSubmitReview(t, approveSession, htmlDoc.GetCSRF(), "user2", "repo1", strconv.Itoa(int(pr.Index)), sha, "approve", http.StatusOK)
|
testSubmitReview(t, approveSession, htmlDoc.GetCSRF(), "user2", "repo1", strconv.Itoa(int(pr.Index)), sha, "approve", http.StatusOK)
|
||||||
|
|
||||||
time.Sleep(2 * time.Second)
|
|
||||||
|
|
||||||
// realod pr again
|
// realod pr again
|
||||||
pr = unittest.AssertExistsAndLoadBean(t, &issues_model.PullRequest{ID: pr.ID})
|
pr = unittest.AssertExistsAndLoadBean(t, &issues_model.PullRequest{ID: pr.ID})
|
||||||
assert.True(t, pr.HasMerged)
|
assert.True(t, pr.HasMerged)
|
||||||
|
@ -7,7 +7,6 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
|
||||||
|
|
||||||
repo_model "code.gitea.io/gitea/models/repo"
|
repo_model "code.gitea.io/gitea/models/repo"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
@ -68,9 +67,6 @@ func TestViewReleases(t *testing.T) {
|
|||||||
session := loginUser(t, "user2")
|
session := loginUser(t, "user2")
|
||||||
req := NewRequest(t, "GET", "/user2/repo1/releases")
|
req := NewRequest(t, "GET", "/user2/repo1/releases")
|
||||||
session.MakeRequest(t, req, http.StatusOK)
|
session.MakeRequest(t, req, http.StatusOK)
|
||||||
|
|
||||||
// if CI is to slow this test fail, so lets wait a bit
|
|
||||||
time.Sleep(time.Millisecond * 100)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestViewReleasesNoLogin(t *testing.T) {
|
func TestViewReleasesNoLogin(t *testing.T) {
|
||||||
|
@ -11,7 +11,6 @@ import (
|
|||||||
"net/url"
|
"net/url"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
|
||||||
|
|
||||||
auth_model "code.gitea.io/gitea/models/auth"
|
auth_model "code.gitea.io/gitea/models/auth"
|
||||||
"code.gitea.io/gitea/models/repo"
|
"code.gitea.io/gitea/models/repo"
|
||||||
@ -890,7 +889,6 @@ jobs:
|
|||||||
task := runner.fetchTask(t)
|
task := runner.fetchTask(t)
|
||||||
outcome := &mockTaskOutcome{
|
outcome := &mockTaskOutcome{
|
||||||
result: runnerv1.Result_RESULT_SUCCESS,
|
result: runnerv1.Result_RESULT_SUCCESS,
|
||||||
execTime: time.Millisecond,
|
|
||||||
}
|
}
|
||||||
runner.execTask(t, task, outcome)
|
runner.execTask(t, task, outcome)
|
||||||
|
|
||||||
@ -927,7 +925,6 @@ jobs:
|
|||||||
task = runner.fetchTask(t)
|
task = runner.fetchTask(t)
|
||||||
outcome = &mockTaskOutcome{
|
outcome = &mockTaskOutcome{
|
||||||
result: runnerv1.Result_RESULT_FAILURE,
|
result: runnerv1.Result_RESULT_FAILURE,
|
||||||
execTime: time.Millisecond,
|
|
||||||
}
|
}
|
||||||
runner.execTask(t, task, outcome)
|
runner.execTask(t, task, outcome)
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
"code.gitea.io/gitea/modules/test"
|
||||||
"code.gitea.io/gitea/tests"
|
"code.gitea.io/gitea/tests"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
@ -92,8 +93,7 @@ func TestSettingShowUserEmailProfile(t *testing.T) {
|
|||||||
|
|
||||||
func TestSettingLandingPage(t *testing.T) {
|
func TestSettingLandingPage(t *testing.T) {
|
||||||
defer tests.PrepareTestEnv(t)()
|
defer tests.PrepareTestEnv(t)()
|
||||||
|
defer test.MockVariableValue(&setting.LandingPageURL)()
|
||||||
landingPage := setting.LandingPageURL
|
|
||||||
|
|
||||||
setting.LandingPageURL = setting.LandingPageHome
|
setting.LandingPageURL = setting.LandingPageHome
|
||||||
req := NewRequest(t, "GET", "/")
|
req := NewRequest(t, "GET", "/")
|
||||||
@ -113,6 +113,4 @@ func TestSettingLandingPage(t *testing.T) {
|
|||||||
req = NewRequest(t, "GET", "/")
|
req = NewRequest(t, "GET", "/")
|
||||||
resp = MakeRequest(t, req, http.StatusSeeOther)
|
resp = MakeRequest(t, req, http.StatusSeeOther)
|
||||||
assert.Equal(t, "/user/login", resp.Header().Get("Location"))
|
assert.Equal(t, "/user/login", resp.Header().Get("Location"))
|
||||||
|
|
||||||
setting.LandingPageURL = landingPage
|
|
||||||
}
|
}
|
||||||
|
@ -22,8 +22,7 @@ import (
|
|||||||
|
|
||||||
func TestSignup(t *testing.T) {
|
func TestSignup(t *testing.T) {
|
||||||
defer tests.PrepareTestEnv(t)()
|
defer tests.PrepareTestEnv(t)()
|
||||||
|
defer test.MockVariableValue(&setting.Service.EnableCaptcha, false)()
|
||||||
setting.Service.EnableCaptcha = false
|
|
||||||
|
|
||||||
req := NewRequestWithValues(t, "POST", "/user/sign_up", map[string]string{
|
req := NewRequestWithValues(t, "POST", "/user/sign_up", map[string]string{
|
||||||
"user_name": "exampleUser",
|
"user_name": "exampleUser",
|
||||||
@ -40,9 +39,8 @@ func TestSignup(t *testing.T) {
|
|||||||
|
|
||||||
func TestSignupAsRestricted(t *testing.T) {
|
func TestSignupAsRestricted(t *testing.T) {
|
||||||
defer tests.PrepareTestEnv(t)()
|
defer tests.PrepareTestEnv(t)()
|
||||||
|
defer test.MockVariableValue(&setting.Service.EnableCaptcha, false)()
|
||||||
setting.Service.EnableCaptcha = false
|
defer test.MockVariableValue(&setting.Service.DefaultUserIsRestricted, true)()
|
||||||
setting.Service.DefaultUserIsRestricted = true
|
|
||||||
|
|
||||||
req := NewRequestWithValues(t, "POST", "/user/sign_up", map[string]string{
|
req := NewRequestWithValues(t, "POST", "/user/sign_up", map[string]string{
|
||||||
"user_name": "restrictedUser",
|
"user_name": "restrictedUser",
|
||||||
@ -62,8 +60,7 @@ func TestSignupAsRestricted(t *testing.T) {
|
|||||||
|
|
||||||
func TestSignupEmailValidation(t *testing.T) {
|
func TestSignupEmailValidation(t *testing.T) {
|
||||||
defer tests.PrepareTestEnv(t)()
|
defer tests.PrepareTestEnv(t)()
|
||||||
|
defer test.MockVariableValue(&setting.Service.EnableCaptcha, false)()
|
||||||
setting.Service.EnableCaptcha = false
|
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
email string
|
email string
|
||||||
|
@ -257,8 +257,8 @@ func TestListStopWatches(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestUserLocationMapLink(t *testing.T) {
|
func TestUserLocationMapLink(t *testing.T) {
|
||||||
setting.Service.UserLocationMapURL = "https://example/foo/"
|
|
||||||
defer tests.PrepareTestEnv(t)()
|
defer tests.PrepareTestEnv(t)()
|
||||||
|
defer test.MockVariableValue(&setting.Service.UserLocationMapURL, "https://example/foo/")()
|
||||||
|
|
||||||
session := loginUser(t, "user2")
|
session := loginUser(t, "user2")
|
||||||
req := NewRequestWithValues(t, "POST", "/user/settings", map[string]string{
|
req := NewRequestWithValues(t, "POST", "/user/settings", map[string]string{
|
||||||
|
@ -13,6 +13,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/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
"code.gitea.io/gitea/modules/test"
|
||||||
"code.gitea.io/gitea/tests"
|
"code.gitea.io/gitea/tests"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
@ -20,11 +21,7 @@ import (
|
|||||||
|
|
||||||
func TestWebfinger(t *testing.T) {
|
func TestWebfinger(t *testing.T) {
|
||||||
defer tests.PrepareTestEnv(t)()
|
defer tests.PrepareTestEnv(t)()
|
||||||
|
defer test.MockVariableValue(&setting.Federation.Enabled, true)()
|
||||||
setting.Federation.Enabled = true
|
|
||||||
defer func() {
|
|
||||||
setting.Federation.Enabled = false
|
|
||||||
}()
|
|
||||||
|
|
||||||
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
|
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user