mirror of
https://github.com/go-gitea/gitea
synced 2025-07-28 05:08:37 +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:
@@ -115,10 +115,9 @@ func (r *mockRunner) fetchTask(t *testing.T, timeout ...time.Duration) *runnerv1
|
||||
}
|
||||
|
||||
type mockTaskOutcome struct {
|
||||
result runnerv1.Result
|
||||
outputs map[string]string
|
||||
logRows []*runnerv1.LogRow
|
||||
execTime time.Duration
|
||||
result runnerv1.Result
|
||||
outputs map[string]string
|
||||
logRows []*runnerv1.LogRow
|
||||
}
|
||||
|
||||
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)
|
||||
assert.ElementsMatch(t, sentOutputKeys, resp.Msg.SentOutputs)
|
||||
}
|
||||
time.Sleep(outcome.execTime)
|
||||
resp, err := r.client.runnerServiceClient.UpdateTask(t.Context(), connect.NewRequest(&runnerv1.UpdateTaskRequest{
|
||||
State: &runnerv1.TaskState{
|
||||
Id: task.Id,
|
||||
|
@@ -87,7 +87,7 @@ func TestPackageGo(t *testing.T) {
|
||||
AddBasicAuth(user.Name)
|
||||
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{
|
||||
packageName + "@" + packageVersion2 + "/go.mod": []byte(goModContent),
|
||||
|
@@ -20,6 +20,7 @@ import (
|
||||
"code.gitea.io/gitea/modules/json"
|
||||
"code.gitea.io/gitea/modules/lfs"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/modules/test"
|
||||
"code.gitea.io/gitea/tests"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
@@ -226,9 +227,7 @@ func TestAPILFSBatch(t *testing.T) {
|
||||
|
||||
t.Run("FileTooBig", func(t *testing.T) {
|
||||
defer tests.PrintCurrentTest(t)()
|
||||
|
||||
oldMaxFileSize := setting.LFS.MaxFileSize
|
||||
setting.LFS.MaxFileSize = 2
|
||||
defer test.MockVariableValue(&setting.LFS.MaxFileSize, 2)()
|
||||
|
||||
req := newRequest(t, &lfs.BatchRequest{
|
||||
Operation: "upload",
|
||||
@@ -243,8 +242,6 @@ func TestAPILFSBatch(t *testing.T) {
|
||||
assert.NotNil(t, br.Objects[0].Error)
|
||||
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)
|
||||
|
||||
setting.LFS.MaxFileSize = oldMaxFileSize
|
||||
})
|
||||
|
||||
t.Run("AddMeta", func(t *testing.T) {
|
||||
|
@@ -983,8 +983,6 @@ func TestPullAutoMergeAfterCommitStatusSucceedAndApprovalForAgitFlow(t *testing.
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
|
||||
time.Sleep(2 * time.Second)
|
||||
|
||||
// reload pr again
|
||||
pr = unittest.AssertExistsAndLoadBean(t, &issues_model.PullRequest{ID: pr.ID})
|
||||
assert.False(t, pr.HasMerged)
|
||||
@@ -997,8 +995,6 @@ func TestPullAutoMergeAfterCommitStatusSucceedAndApprovalForAgitFlow(t *testing.
|
||||
htmlDoc := NewHTMLParser(t, resp.Body)
|
||||
testSubmitReview(t, approveSession, htmlDoc.GetCSRF(), "user2", "repo1", strconv.Itoa(int(pr.Index)), sha, "approve", http.StatusOK)
|
||||
|
||||
time.Sleep(2 * time.Second)
|
||||
|
||||
// realod pr again
|
||||
pr = unittest.AssertExistsAndLoadBean(t, &issues_model.PullRequest{ID: pr.ID})
|
||||
assert.True(t, pr.HasMerged)
|
||||
|
@@ -7,7 +7,6 @@ import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
repo_model "code.gitea.io/gitea/models/repo"
|
||||
"code.gitea.io/gitea/models/unittest"
|
||||
@@ -68,9 +67,6 @@ func TestViewReleases(t *testing.T) {
|
||||
session := loginUser(t, "user2")
|
||||
req := NewRequest(t, "GET", "/user2/repo1/releases")
|
||||
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) {
|
||||
|
@@ -11,7 +11,6 @@ import (
|
||||
"net/url"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
auth_model "code.gitea.io/gitea/models/auth"
|
||||
"code.gitea.io/gitea/models/repo"
|
||||
@@ -889,8 +888,7 @@ jobs:
|
||||
// 4. Execute a single Job
|
||||
task := runner.fetchTask(t)
|
||||
outcome := &mockTaskOutcome{
|
||||
result: runnerv1.Result_RESULT_SUCCESS,
|
||||
execTime: time.Millisecond,
|
||||
result: runnerv1.Result_RESULT_SUCCESS,
|
||||
}
|
||||
runner.execTask(t, task, outcome)
|
||||
|
||||
@@ -926,8 +924,7 @@ jobs:
|
||||
// 6. Execute a single Job
|
||||
task = runner.fetchTask(t)
|
||||
outcome = &mockTaskOutcome{
|
||||
result: runnerv1.Result_RESULT_FAILURE,
|
||||
execTime: time.Millisecond,
|
||||
result: runnerv1.Result_RESULT_FAILURE,
|
||||
}
|
||||
runner.execTask(t, task, outcome)
|
||||
|
||||
|
@@ -8,6 +8,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/modules/test"
|
||||
"code.gitea.io/gitea/tests"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
@@ -92,8 +93,7 @@ func TestSettingShowUserEmailProfile(t *testing.T) {
|
||||
|
||||
func TestSettingLandingPage(t *testing.T) {
|
||||
defer tests.PrepareTestEnv(t)()
|
||||
|
||||
landingPage := setting.LandingPageURL
|
||||
defer test.MockVariableValue(&setting.LandingPageURL)()
|
||||
|
||||
setting.LandingPageURL = setting.LandingPageHome
|
||||
req := NewRequest(t, "GET", "/")
|
||||
@@ -113,6 +113,4 @@ func TestSettingLandingPage(t *testing.T) {
|
||||
req = NewRequest(t, "GET", "/")
|
||||
resp = MakeRequest(t, req, http.StatusSeeOther)
|
||||
assert.Equal(t, "/user/login", resp.Header().Get("Location"))
|
||||
|
||||
setting.LandingPageURL = landingPage
|
||||
}
|
||||
|
@@ -22,8 +22,7 @@ import (
|
||||
|
||||
func TestSignup(t *testing.T) {
|
||||
defer tests.PrepareTestEnv(t)()
|
||||
|
||||
setting.Service.EnableCaptcha = false
|
||||
defer test.MockVariableValue(&setting.Service.EnableCaptcha, false)()
|
||||
|
||||
req := NewRequestWithValues(t, "POST", "/user/sign_up", map[string]string{
|
||||
"user_name": "exampleUser",
|
||||
@@ -40,9 +39,8 @@ func TestSignup(t *testing.T) {
|
||||
|
||||
func TestSignupAsRestricted(t *testing.T) {
|
||||
defer tests.PrepareTestEnv(t)()
|
||||
|
||||
setting.Service.EnableCaptcha = false
|
||||
setting.Service.DefaultUserIsRestricted = true
|
||||
defer test.MockVariableValue(&setting.Service.EnableCaptcha, false)()
|
||||
defer test.MockVariableValue(&setting.Service.DefaultUserIsRestricted, true)()
|
||||
|
||||
req := NewRequestWithValues(t, "POST", "/user/sign_up", map[string]string{
|
||||
"user_name": "restrictedUser",
|
||||
@@ -62,8 +60,7 @@ func TestSignupAsRestricted(t *testing.T) {
|
||||
|
||||
func TestSignupEmailValidation(t *testing.T) {
|
||||
defer tests.PrepareTestEnv(t)()
|
||||
|
||||
setting.Service.EnableCaptcha = false
|
||||
defer test.MockVariableValue(&setting.Service.EnableCaptcha, false)()
|
||||
|
||||
tests := []struct {
|
||||
email string
|
||||
|
@@ -257,8 +257,8 @@ func TestListStopWatches(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestUserLocationMapLink(t *testing.T) {
|
||||
setting.Service.UserLocationMapURL = "https://example/foo/"
|
||||
defer tests.PrepareTestEnv(t)()
|
||||
defer test.MockVariableValue(&setting.Service.UserLocationMapURL, "https://example/foo/")()
|
||||
|
||||
session := loginUser(t, "user2")
|
||||
req := NewRequestWithValues(t, "POST", "/user/settings", map[string]string{
|
||||
|
@@ -13,6 +13,7 @@ import (
|
||||
"code.gitea.io/gitea/models/unittest"
|
||||
user_model "code.gitea.io/gitea/models/user"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/modules/test"
|
||||
"code.gitea.io/gitea/tests"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
@@ -20,11 +21,7 @@ import (
|
||||
|
||||
func TestWebfinger(t *testing.T) {
|
||||
defer tests.PrepareTestEnv(t)()
|
||||
|
||||
setting.Federation.Enabled = true
|
||||
defer func() {
|
||||
setting.Federation.Enabled = false
|
||||
}()
|
||||
defer test.MockVariableValue(&setting.Federation.Enabled, true)()
|
||||
|
||||
user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2})
|
||||
|
||||
|
Reference in New Issue
Block a user