mirror of
https://github.com/go-gitea/gitea.git
synced 2026-08-01 01:20:17 +00:00
4d6e172a0d
Unfortunately, we can't completely remove the ctx from git.Repository, because the CatFileBatch still heavily depends on a parent context. If we remove the Repository ctx, the CatFileBatch will become a mess and create a lot of unnecessary git processes. http://localhost:3000/-/admin/monitor/perftrace * Before: open a repo home, dozens of git processes (duplicate cat-file) * After: only a few (no duplicate cat-file)
45 lines
985 B
Go
45 lines
985 B
Go
// Copyright 2020 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package languagestats
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"gitea.dev/modules/git"
|
|
"gitea.dev/modules/setting"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestRepository_GetLanguageStats(t *testing.T) {
|
|
setting.AppDataPath = t.TempDir()
|
|
repoPath := "../tests/repos/language_stats_repo"
|
|
gitRepo, err := git.OpenRepositoryLocal(t.Context(), repoPath)
|
|
require.NoError(t, err)
|
|
defer gitRepo.Close()
|
|
|
|
stats, err := GetLanguageStats(t.Context(), gitRepo, "8fee858da5796dfb37704761701bb8e800ad9ef3")
|
|
require.NoError(t, err)
|
|
|
|
assert.Equal(t, map[string]int64{
|
|
"Python": 134,
|
|
"Java": 112,
|
|
}, stats)
|
|
}
|
|
|
|
func TestMergeLanguageStats(t *testing.T) {
|
|
assert.Equal(t, map[string]int64{
|
|
"PHP": 1,
|
|
"python": 10,
|
|
"JAVA": 700,
|
|
}, mergeLanguageStats(map[string]int64{
|
|
"PHP": 1,
|
|
"python": 10,
|
|
"Java": 100,
|
|
"java": 200,
|
|
"JAVA": 400,
|
|
}))
|
|
}
|