diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2024-12-10 13:15:06 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-11 05:15:06 +0800 |
commit | fbe6d9dc6b9f04e8be219ad4b442df9e08c16b7b (patch) | |
tree | 73d380093f37c44bf90c55cd67ed092ec4d37a59 /models/organization/team_list_test.go | |
parent | 2ac6f2b129fd6d955ac0fdb4dcf46efd5163f3b3 (diff) | |
download | gitea-fbe6d9dc6b9f04e8be219ad4b442df9e08c16b7b.tar.gz gitea-fbe6d9dc6b9f04e8be219ad4b442df9e08c16b7b.zip |
Use batch database operations instead of one by one to optimze api pulls (#32680)
Resolve #31492
The response time for the Pull Requests API has improved significantly,
dropping from over `2000ms` to about `350ms` on my local machine. It's
about `6` times faster.
A key area for further optimization lies in batch-fetching data for
`apiPullRequest.ChangedFiles, apiPullRequest.Additions, and
apiPullRequest.Deletions`.
Tests `TestAPIViewPulls` does exist and new tests added.
- This PR also fixes some bugs in `GetDiff` functions.
- This PR also fixes data inconsistent in test data. For a pull request,
the head branch's reference should be equal to the reference in
`pull/xxx/head`.
Diffstat (limited to 'models/organization/team_list_test.go')
-rw-r--r-- | models/organization/team_list_test.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/models/organization/team_list_test.go b/models/organization/team_list_test.go new file mode 100644 index 0000000000..5526446e22 --- /dev/null +++ b/models/organization/team_list_test.go @@ -0,0 +1,25 @@ +// Copyright 2024 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package organization_test + +import ( + "testing" + + "code.gitea.io/gitea/models/db" + org_model "code.gitea.io/gitea/models/organization" + "code.gitea.io/gitea/models/unittest" + + "github.com/stretchr/testify/assert" +) + +func Test_GetTeamsByIDs(t *testing.T) { + assert.NoError(t, unittest.PrepareTestDatabase()) + + // 1 owner team, 2 normal team + teams, err := org_model.GetTeamsByIDs(db.DefaultContext, []int64{1, 2}) + assert.NoError(t, err) + assert.Len(t, teams, 2) + assert.Equal(t, "Owners", teams[1].Name) + assert.Equal(t, "team1", teams[2].Name) +} |