disable gravatar in test

When running e2e tests on flaky networks, gravatar can cause a timeout
and test failures. Turn off, and populate avatars on run to make tests
more reliable.
This commit is contained in:
Rowan Bohde 2024-11-15 16:50:31 -06:00
parent e546480d0a
commit 77ae475157
4 changed files with 28 additions and 2 deletions

View File

@ -1,7 +1,7 @@
-
id: 1
setting_key: 'picture.disable_gravatar'
setting_value: 'false'
setting_value: 'true'
version: 1
created: 1653533198
updated: 1653533198

View File

@ -12,6 +12,7 @@ import (
"code.gitea.io/gitea/models/db"
repo_model "code.gitea.io/gitea/models/repo"
system_model "code.gitea.io/gitea/models/system"
"code.gitea.io/gitea/models/unittest"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/setting"
@ -104,6 +105,7 @@ func TestPushCommits_ToAPIPayloadCommits(t *testing.T) {
func TestPushCommits_AvatarLink(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())
system_model.SetSettings(db.DefaultContext, map[string]string{setting.Config().Picture.DisableGravatar.DynKey(): "defer"})
pushCommits := NewPushCommits()
pushCommits.Commits = []*PushCommit{

View File

@ -9,6 +9,7 @@ import (
"code.gitea.io/gitea/models/db"
repo_model "code.gitea.io/gitea/models/repo"
system_model "code.gitea.io/gitea/models/system"
"code.gitea.io/gitea/models/unittest"
"code.gitea.io/gitea/modules/cache"
"code.gitea.io/gitea/modules/setting"
@ -18,6 +19,8 @@ import (
func TestRepository_ContributorsGraph(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())
system_model.SetSettings(db.DefaultContext, map[string]string{setting.Config().Picture.DisableGravatar.DynKey(): "defer"})
repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 2})
assert.NoError(t, repo.LoadOwner(db.DefaultContext))
mockCache, err := cache.NewStringCache(setting.Cache{})

View File

@ -17,15 +17,20 @@ import (
"path/filepath"
"testing"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/unittest"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/graceful"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/storage"
"code.gitea.io/gitea/modules/testlogger"
"code.gitea.io/gitea/modules/util"
"code.gitea.io/gitea/modules/web"
"code.gitea.io/gitea/routers"
"code.gitea.io/gitea/tests"
"github.com/stretchr/testify/assert"
)
var testE2eWebRoutes *web.Router
@ -99,6 +104,22 @@ func TestE2e(t *testing.T) {
t.Run(testname, func(t *testing.T) {
// Default 2 minute timeout
onGiteaRun(t, func(*testing.T, *url.URL) {
err := db.Iterate(context.Background(), nil, func(ctx context.Context, user *user_model.User) error {
if user.Avatar == "" {
return nil
}
avatar, err := os.Open(filepath.Join(filepath.Dir(setting.AppPath), "tests/integration/avatar.png"))
if err != nil {
return err
}
defer avatar.Close()
_, err = storage.Avatars.Save(user.Avatar, avatar, -1)
return err
})
assert.NoError(t, err)
cmd := exec.Command(runArgs[0], runArgs...)
cmd.Env = os.Environ()
cmd.Env = append(cmd.Env, fmt.Sprintf("GITEA_URL=%s", setting.AppURL))
@ -107,7 +128,7 @@ func TestE2e(t *testing.T) {
cmd.Stdout = &stdout
cmd.Stderr = &stderr
err := cmd.Run()
err = cmd.Run()
if err != nil {
// Currently colored output is conflicting. Using Printf until that is resolved.
fmt.Printf("%v", stdout.String())