mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2026-06-22 10:02:15 +00:00
fix(coverage): Integration tests don't run with coverage (#12978)
### Documentation - [ ] I created a pull request [to the documentation](https://codeberg.org/forgejo/docs) to explain to Forgejo users how to use this change. - [x] I did not document these changes and I do not expect someone else to do it. ### Release notes - [ ] This change will be noticed by a Forgejo user or admin (feature, bug fix, performance, etc.). I suggest to include a release note for this change. - [x] This change is not visible to a Forgejo user or admin (refactor, dependency upgrade, etc.). I think there is no need to add a release note for this change. Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/12978 Reviewed-by: limiting-factor <limiting-factor@noreply.codeberg.org> Reviewed-by: Mathieu Fenniak <mfenniak@noreply.codeberg.org>
This commit is contained in:
parent
bf74c4ec43
commit
519e868338
13 changed files with 72 additions and 51 deletions
|
|
@ -59,7 +59,7 @@ jobs:
|
|||
options: --tmpfs /bitnami/postgresql
|
||||
cacher:
|
||||
image: registry.redict.io/redict:7.3.6-scratch
|
||||
options: --tmpfs /data:noatime
|
||||
options: --tmpfs /data:noatime,uid=1000,gid=1000
|
||||
steps:
|
||||
- uses: https://data.forgejo.org/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
|
|
|
|||
16
Makefile
16
Makefile
|
|
@ -652,7 +652,9 @@ $(GO_LICENSE_FILE): go.mod go.sum
|
|||
@rm -rf $(GO_LICENSE_TMP_DIR)
|
||||
|
||||
generate-ini-sqlite:
|
||||
sed -e 's|{{REPO_TEST_DIR}}|${REPO_TEST_DIR}|g' \
|
||||
sed \
|
||||
-e 's|{{REPO_TEST_DIR}}|$(or $(REPO_TEST_DIR),$(CURDIR)/)|g' \
|
||||
-e 's|{{PROJECT_ROOT}}|$(CURDIR)|g' \
|
||||
-e 's|{{TEST_LOGGER}}|$(or $(TEST_LOGGER),test$(COMMA)file)|g' \
|
||||
-e 's|{{TEST_TYPE}}|$(or $(TEST_TYPE),integration)|g' \
|
||||
tests/sqlite.ini.tmpl > tests/sqlite.ini
|
||||
|
|
@ -669,11 +671,13 @@ test-sqlite\#%: integrations.sqlite.test generate-ini-sqlite
|
|||
test-sqlite-migration: migrations.sqlite.test migrations.individual.sqlite.test
|
||||
|
||||
generate-ini-mysql:
|
||||
sed -e 's|{{TEST_MYSQL_HOST}}|${TEST_MYSQL_HOST}|g' \
|
||||
sed \
|
||||
-e 's|{{TEST_MYSQL_HOST}}|${TEST_MYSQL_HOST}|g' \
|
||||
-e 's|{{TEST_MYSQL_DBNAME}}|${TEST_MYSQL_DBNAME}|g' \
|
||||
-e 's|{{TEST_MYSQL_USERNAME}}|${TEST_MYSQL_USERNAME}|g' \
|
||||
-e 's|{{TEST_MYSQL_PASSWORD}}|${TEST_MYSQL_PASSWORD}|g' \
|
||||
-e 's|{{REPO_TEST_DIR}}|${REPO_TEST_DIR}|g' \
|
||||
-e 's|{{REPO_TEST_DIR}}|$(or $(REPO_TEST_DIR),$(CURDIR)/)|g' \
|
||||
-e 's|{{PROJECT_ROOT}}|$(CURDIR)|g' \
|
||||
-e 's|{{TEST_LOGGER}}|$(or $(TEST_LOGGER),test$(COMMA)file)|g' \
|
||||
-e 's|{{TEST_TYPE}}|$(or $(TEST_TYPE),integration)|g' \
|
||||
tests/mysql.ini.tmpl > tests/mysql.ini
|
||||
|
|
@ -690,12 +694,14 @@ test-mysql\#%: integrations.mysql.test generate-ini-mysql
|
|||
test-mysql-migration: migrations.mysql.test migrations.individual.mysql.test
|
||||
|
||||
generate-ini-pgsql:
|
||||
sed -e 's|{{TEST_PGSQL_HOST}}|${TEST_PGSQL_HOST}|g' \
|
||||
sed \
|
||||
-e 's|{{TEST_PGSQL_HOST}}|${TEST_PGSQL_HOST}|g' \
|
||||
-e 's|{{TEST_PGSQL_DBNAME}}|${TEST_PGSQL_DBNAME}|g' \
|
||||
-e 's|{{TEST_PGSQL_USERNAME}}|${TEST_PGSQL_USERNAME}|g' \
|
||||
-e 's|{{TEST_PGSQL_PASSWORD}}|${TEST_PGSQL_PASSWORD}|g' \
|
||||
-e 's|{{TEST_PGSQL_SCHEMA}}|${TEST_PGSQL_SCHEMA}|g' \
|
||||
-e 's|{{REPO_TEST_DIR}}|${REPO_TEST_DIR}|g' \
|
||||
-e 's|{{REPO_TEST_DIR}}|$(or $(REPO_TEST_DIR),$(CURDIR)/)|g' \
|
||||
-e 's|{{PROJECT_ROOT}}|$(CURDIR)|g' \
|
||||
-e 's|{{TEST_LOGGER}}|$(or $(TEST_LOGGER),test$(COMMA)file)|g' \
|
||||
-e 's|{{TEST_TYPE}}|$(or $(TEST_TYPE),integration)|g' \
|
||||
-e 's|{{TEST_STORAGE_TYPE}}|$(or $(TEST_STORAGE_TYPE),minio)|g' \
|
||||
|
|
|
|||
|
|
@ -8,8 +8,9 @@ PS4='${BASH_SOURCE[0]}:$LINENO: ${FUNCNAME[0]}: '
|
|||
# Those must be explicitly required and are excluded from the full list of packages because they
|
||||
# would interfere with the testing fixtures.
|
||||
#
|
||||
excluded+='forgejo.org/models/gitea_migrations|' # must be run before database specific tests
|
||||
excluded+='forgejo.org/models/forgejo_migrations_legacy|' # must be run before database specific tests
|
||||
excluded+='forgejo.org/models/gitea_migrations|' # must be run before database specific tests
|
||||
excluded+='forgejo.org/models/forgejo_migrations|' # must be run before database specific tests
|
||||
excluded+='forgejo.org/models/forgejo_migrations_legacy|' # must be run before database specific tests
|
||||
excluded+='forgejo.org/tests/integration/migration-test|' # must be run before database specific tests
|
||||
excluded+='forgejo.org/tests|' # only tests, no coverage to get there
|
||||
excluded+='forgejo.org/tests/e2e|' # JavaScript is not in scope here and if it adds coverage it should not be counted
|
||||
|
|
@ -38,7 +39,9 @@ function run_test() {
|
|||
# -race cannot be used because it requires -covermode atomic which is
|
||||
# different from the end-to-end tests and would cause issues wen merging
|
||||
#
|
||||
$GO test -timeout=20m -tags='sqlite sqlite_unlock_notify' -cover $package -coverpkg $COVERED_PACKAGES $COVERAGE_TEST_ARGS -args -test.gocoverdir=$coverage |& grep -v 'warning: no packages being tested depend on matches for pattern'
|
||||
set -o pipefail
|
||||
$GO test -timeout=40m -tags='sqlite sqlite_unlock_notify' -cover $package -coverpkg $COVERED_PACKAGES $COVERAGE_TEST_ARGS -args -test.gocoverdir=$coverage |& grep -v 'warning: no packages being tested depend on matches for pattern'
|
||||
set +o pipefail
|
||||
}
|
||||
|
||||
function test_packages() {
|
||||
|
|
|
|||
|
|
@ -307,6 +307,7 @@ func PrepareTestDatabase() error {
|
|||
func PrepareTestEnv(t testing.TB) {
|
||||
require.NoError(t, PrepareTestDatabase())
|
||||
require.NoError(t, util.RemoveAll(setting.RepoRootPath))
|
||||
giteaRoot = base.SetupGiteaRoot() // Makes sure GITEA_ROOT is set
|
||||
metaPath := filepath.Join(giteaRoot, "tests", "gitea-repositories-meta")
|
||||
require.NoError(t, CopyDir(metaPath, setting.RepoRootPath))
|
||||
ownerDirs, err := os.ReadDir(setting.RepoRootPath)
|
||||
|
|
@ -324,6 +325,4 @@ func PrepareTestEnv(t testing.TB) {
|
|||
_ = os.MkdirAll(filepath.Join(setting.RepoRootPath, ownerDir.Name(), repoDir.Name(), "refs", "tag"), 0o755)
|
||||
}
|
||||
}
|
||||
|
||||
base.SetupGiteaRoot() // Makes sure GITEA_ROOT is set
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,9 +7,11 @@ import (
|
|||
"encoding/base64"
|
||||
"net/http"
|
||||
"os"
|
||||
"path"
|
||||
"testing"
|
||||
|
||||
auth_model "forgejo.org/models/auth"
|
||||
"forgejo.org/modules/setting"
|
||||
api "forgejo.org/modules/structs"
|
||||
"forgejo.org/tests"
|
||||
|
||||
|
|
@ -25,7 +27,7 @@ func TestAPIUpdateOrgAvatar(t *testing.T) {
|
|||
token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteOrganization)
|
||||
|
||||
// Test what happens if you use a valid image
|
||||
avatar, err := os.ReadFile("tests/integration/avatar.png")
|
||||
avatar, err := os.ReadFile(path.Join(setting.AppWorkPath, "tests/integration/avatar.png"))
|
||||
require.NoError(t, err)
|
||||
if err != nil {
|
||||
assert.FailNow(t, "Unable to open avatar.png")
|
||||
|
|
@ -49,7 +51,7 @@ func TestAPIUpdateOrgAvatar(t *testing.T) {
|
|||
MakeRequest(t, req, http.StatusBadRequest)
|
||||
|
||||
// Test what happens if you use a file that is not an image
|
||||
text, err := os.ReadFile("tests/integration/README.md")
|
||||
text, err := os.ReadFile(path.Join(setting.AppWorkPath, "tests/integration/README.md"))
|
||||
require.NoError(t, err)
|
||||
if err != nil {
|
||||
assert.FailNow(t, "Unable to open README.md")
|
||||
|
|
|
|||
|
|
@ -8,12 +8,14 @@ import (
|
|||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
"path"
|
||||
"testing"
|
||||
|
||||
auth_model "forgejo.org/models/auth"
|
||||
repo_model "forgejo.org/models/repo"
|
||||
"forgejo.org/models/unittest"
|
||||
user_model "forgejo.org/models/user"
|
||||
"forgejo.org/modules/setting"
|
||||
api "forgejo.org/modules/structs"
|
||||
"forgejo.org/tests"
|
||||
|
||||
|
|
@ -29,7 +31,7 @@ func TestAPIUpdateRepoAvatar(t *testing.T) {
|
|||
token := getUserToken(t, user2.LowerName, auth_model.AccessTokenScopeWriteRepository)
|
||||
|
||||
// Test what happens if you use a valid image
|
||||
avatar, err := os.ReadFile("tests/integration/avatar.png")
|
||||
avatar, err := os.ReadFile(path.Join(setting.AppWorkPath, "tests/integration/avatar.png"))
|
||||
require.NoError(t, err)
|
||||
if err != nil {
|
||||
assert.FailNow(t, "Unable to open avatar.png")
|
||||
|
|
@ -53,7 +55,7 @@ func TestAPIUpdateRepoAvatar(t *testing.T) {
|
|||
MakeRequest(t, req, http.StatusBadRequest)
|
||||
|
||||
// Test what happens if you use a file that is not an image
|
||||
text, err := os.ReadFile("tests/integration/README.md")
|
||||
text, err := os.ReadFile(path.Join(setting.AppWorkPath, "tests/integration/README.md"))
|
||||
require.NoError(t, err)
|
||||
if err != nil {
|
||||
assert.FailNow(t, "Unable to open README.md")
|
||||
|
|
|
|||
|
|
@ -7,9 +7,11 @@ import (
|
|||
"encoding/base64"
|
||||
"net/http"
|
||||
"os"
|
||||
"path"
|
||||
"testing"
|
||||
|
||||
auth_model "forgejo.org/models/auth"
|
||||
"forgejo.org/modules/setting"
|
||||
api "forgejo.org/modules/structs"
|
||||
"forgejo.org/tests"
|
||||
|
||||
|
|
@ -25,7 +27,7 @@ func TestAPIUpdateUserAvatar(t *testing.T) {
|
|||
token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteUser)
|
||||
|
||||
// Test what happens if you use a valid image
|
||||
avatar, err := os.ReadFile("tests/integration/avatar.png")
|
||||
avatar, err := os.ReadFile(path.Join(setting.AppWorkPath, "tests/integration/avatar.png"))
|
||||
require.NoError(t, err)
|
||||
if err != nil {
|
||||
assert.FailNow(t, "Unable to open avatar.png")
|
||||
|
|
@ -49,7 +51,7 @@ func TestAPIUpdateUserAvatar(t *testing.T) {
|
|||
MakeRequest(t, req, http.StatusBadRequest)
|
||||
|
||||
// Test what happens if you use a file that is not an image
|
||||
text, err := os.ReadFile("tests/integration/README.md")
|
||||
text, err := os.ReadFile(path.Join(setting.AppWorkPath, "tests/integration/README.md"))
|
||||
require.NoError(t, err)
|
||||
if err != nil {
|
||||
assert.FailNow(t, "Unable to open README.md")
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ func initMigrationTest(t *testing.T) func() {
|
|||
deferFn := tests.PrintCurrentTest(t, 2)
|
||||
root := getRoot(t)
|
||||
setting.AppPath = path.Join(root, "migration-test-should-not-need-a-binary") // use RunMainAppWithStdin if a binary is needed
|
||||
setting.AppWorkPath = root
|
||||
|
||||
giteaConf := os.Getenv("GITEA_CONF")
|
||||
if giteaConf == "" {
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import (
|
|||
"fmt"
|
||||
"net/url"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"path"
|
||||
"testing"
|
||||
|
||||
auth_model "forgejo.org/models/auth"
|
||||
|
|
@ -44,13 +44,14 @@ func TestInstanceSigning(t *testing.T) {
|
|||
t.Run("SSH", func(t *testing.T) {
|
||||
defer tests.PrintCurrentTest(t)()
|
||||
|
||||
pubKeyContent, err := os.ReadFile("tests/integration/ssh-signing-key.pub")
|
||||
signingKeyPath := path.Join(setting.AppWorkPath, "tests/integration/ssh-signing-key")
|
||||
pubKeyPath := signingKeyPath + ".pub"
|
||||
|
||||
pubKeyContent, err := os.ReadFile(pubKeyPath)
|
||||
require.NoError(t, err)
|
||||
|
||||
pubKey, _, _, _, err := ssh.ParseAuthorizedKey(pubKeyContent)
|
||||
require.NoError(t, err)
|
||||
signingKeyPath, err := filepath.Abs("tests/integration/ssh-signing-key")
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, os.Chmod(signingKeyPath, 0o600))
|
||||
defer test.MockVariableValue(&setting.SSHInstanceKey, pubKey)()
|
||||
defer test.MockVariableValue(&setting.Repository.Signing.Format, "ssh")()
|
||||
|
|
@ -438,10 +439,11 @@ func crudActionCreateFile(_ *testing.T, ctx APITestContext, user *user_model.Use
|
|||
}
|
||||
|
||||
func importTestingKey() (*openpgp.Entity, error) {
|
||||
if _, _, err := process.GetManager().Exec("gpg --import tests/integration/private-testing.key", "gpg", "--import", "tests/integration/private-testing.key"); err != nil {
|
||||
keyringFilePath := path.Join(setting.AppWorkPath, "tests/integration/private-testing.key")
|
||||
if _, _, err := process.GetManager().Exec("gpg --import "+keyringFilePath, "gpg", "--import", keyringFilePath); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
keyringFile, err := os.Open("tests/integration/private-testing.key")
|
||||
keyringFile, err := os.Open(keyringFilePath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,11 +12,11 @@ SSL_MODE = disable
|
|||
|
||||
[indexer]
|
||||
REPO_INDEXER_ENABLED = true
|
||||
REPO_INDEXER_PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-mysql/indexers/repos.bleve
|
||||
REPO_INDEXER_PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-mysql/indexers/repos.bleve
|
||||
|
||||
[queue.issue_indexer]
|
||||
TYPE = level
|
||||
DATADIR = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-mysql/indexers/issues.queue
|
||||
DATADIR = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-mysql/indexers/issues.queue
|
||||
|
||||
[queue.stats_recalc] # override below default of `immediate` to avoid locking issues
|
||||
TYPE = channel
|
||||
|
|
@ -28,10 +28,10 @@ TYPE = immediate
|
|||
ROOT = {{REPO_TEST_DIR}}tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-mysql/gitea-repositories
|
||||
|
||||
[repository.local]
|
||||
LOCAL_COPY_PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-mysql/tmp/local-repo
|
||||
LOCAL_COPY_PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-mysql/tmp/local-repo
|
||||
|
||||
[repository.upload]
|
||||
TEMP_PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-mysql/tmp/uploads
|
||||
TEMP_PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-mysql/tmp/uploads
|
||||
|
||||
[repository.signing]
|
||||
SIGNING_KEY = none
|
||||
|
|
@ -43,7 +43,7 @@ ROOT_URL = http://localhost:3001/
|
|||
DISABLE_SSH = false
|
||||
SSH_LISTEN_HOST = localhost
|
||||
SSH_PORT = 2201
|
||||
APP_DATA_PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-mysql/data
|
||||
APP_DATA_PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-mysql/data
|
||||
BUILTIN_SSH_SERVER_USER = git
|
||||
START_SSH_SERVER = true
|
||||
OFFLINE_MODE = false
|
||||
|
|
@ -74,7 +74,7 @@ ENABLE_FEDERATED_AVATAR = false
|
|||
|
||||
[session]
|
||||
PROVIDER = file
|
||||
PROVIDER_CONFIG = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-mysql/data/sessions
|
||||
PROVIDER_CONFIG = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-mysql/data/sessions
|
||||
|
||||
[log]
|
||||
MODE = {{TEST_LOGGER}}
|
||||
|
|
@ -98,7 +98,7 @@ INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE0OTU1NTE2MTh9.h
|
|||
DISABLE_QUERY_AUTH_TOKEN = true
|
||||
|
||||
[lfs]
|
||||
PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-mysql/data/lfs
|
||||
PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-mysql/data/lfs
|
||||
|
||||
[packages]
|
||||
ENABLED = true
|
||||
|
|
|
|||
|
|
@ -13,11 +13,11 @@ SSL_MODE = disable
|
|||
|
||||
[indexer]
|
||||
REPO_INDEXER_ENABLED = true
|
||||
REPO_INDEXER_PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/indexers/repos.bleve
|
||||
REPO_INDEXER_PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/indexers/repos.bleve
|
||||
|
||||
[queue.issue_indexer]
|
||||
TYPE = level
|
||||
DATADIR = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/indexers/issues.queue
|
||||
DATADIR = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/indexers/issues.queue
|
||||
|
||||
[queue.stats_recalc] # override below default of `immediate` to avoid locking issues
|
||||
TYPE = channel
|
||||
|
|
@ -29,10 +29,10 @@ TYPE = immediate
|
|||
ROOT = {{REPO_TEST_DIR}}tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/gitea-repositories
|
||||
|
||||
[repository.local]
|
||||
LOCAL_COPY_PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/tmp/local-repo
|
||||
LOCAL_COPY_PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/tmp/local-repo
|
||||
|
||||
[repository.upload]
|
||||
TEMP_PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/tmp/uploads
|
||||
TEMP_PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/tmp/uploads
|
||||
|
||||
[repository.signing]
|
||||
SIGNING_KEY = none
|
||||
|
|
@ -48,12 +48,12 @@ START_SSH_SERVER = true
|
|||
LFS_START_SERVER = true
|
||||
OFFLINE_MODE = false
|
||||
LFS_JWT_SECRET = Tv_MjmZuHqpIY6GFl12ebgkRAMt4RlWt0v4EHKSXO0w
|
||||
APP_DATA_PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/data
|
||||
APP_DATA_PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/data
|
||||
BUILTIN_SSH_SERVER_USER = git
|
||||
SSH_TRUSTED_USER_CA_KEYS = ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCb4DC1dMFnJ6pXWo7GMxTchtzmJHYzfN6sZ9FAPFR4ijMLfGki+olvOMO5Fql1/yGnGfbELQa1S6y4shSvj/5K+zUFScmEXYf3Gcr87RqilLkyk16RS+cHNB1u87xTHbETaa3nyCJeGQRpd4IQ4NKob745mwDZ7jQBH8AZEng50Oh8y8fi8skBBBzaYp1ilgvzG740L7uex6fHV62myq0SXeCa+oJUjq326FU8y+Vsa32H8A3e7tOgXZPdt2TVNltx2S9H2WO8RMi7LfaSwARNfy1zu+bfR50r6ef8Yx5YKCMz4wWb1SHU1GS800mjOjlInLQORYRNMlSwR1+vLlVDciOqFapDSbj+YOVOawR0R1aqlSKpZkt33DuOBPx9qe6CVnIi7Z+Px/KqM+OLCzlLY/RS+LbxQpDWcfTVRiP+S5qRTcE3M3UioN/e0BE/1+MpX90IGpvVkA63ILYbKEa4bM3ASL7ChTCr6xN5XT+GpVJveFKK1cfNx9ExHI4rzYE=
|
||||
|
||||
[attachment]
|
||||
PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/data/attachments
|
||||
PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/data/attachments
|
||||
|
||||
[mailer]
|
||||
ENABLED = true
|
||||
|
|
@ -74,12 +74,12 @@ ENABLE_NOTIFY_MAIL = true
|
|||
[picture]
|
||||
DISABLE_GRAVATAR = false
|
||||
ENABLE_FEDERATED_AVATAR = false
|
||||
AVATAR_UPLOAD_PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/data/avatars
|
||||
REPOSITORY_AVATAR_UPLOAD_PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/data/repo-avatars
|
||||
AVATAR_UPLOAD_PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/data/avatars
|
||||
REPOSITORY_AVATAR_UPLOAD_PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/data/repo-avatars
|
||||
|
||||
[session]
|
||||
PROVIDER = file
|
||||
PROVIDER_CONFIG = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/data/sessions
|
||||
PROVIDER_CONFIG = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-pgsql/data/sessions
|
||||
|
||||
[log]
|
||||
MODE = {{TEST_LOGGER}}
|
||||
|
|
|
|||
|
|
@ -4,16 +4,16 @@ RUN_MODE = prod
|
|||
|
||||
[database]
|
||||
DB_TYPE = sqlite3
|
||||
PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/gitea.db
|
||||
PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/gitea.db
|
||||
SQLITE_JOURNAL_MODE = MEMORY
|
||||
|
||||
[indexer]
|
||||
REPO_INDEXER_ENABLED = true
|
||||
REPO_INDEXER_PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/indexers/repos.bleve
|
||||
REPO_INDEXER_PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/indexers/repos.bleve
|
||||
|
||||
[queue.issue_indexer]
|
||||
TYPE = level
|
||||
DATADIR = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/indexers/issues.queue
|
||||
DATADIR = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/indexers/issues.queue
|
||||
|
||||
[queue.stats_recalc] # override below default of `immediate` to avoid locking issues
|
||||
TYPE = channel
|
||||
|
|
@ -25,10 +25,10 @@ TYPE = immediate
|
|||
ROOT = {{REPO_TEST_DIR}}tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/gitea-repositories
|
||||
|
||||
[repository.local]
|
||||
LOCAL_COPY_PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/tmp/local-repo
|
||||
LOCAL_COPY_PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/tmp/local-repo
|
||||
|
||||
[repository.upload]
|
||||
TEMP_PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/tmp/uploads
|
||||
TEMP_PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/tmp/uploads
|
||||
|
||||
[repository.signing]
|
||||
SIGNING_KEY = none
|
||||
|
|
@ -44,13 +44,13 @@ START_SSH_SERVER = true
|
|||
LFS_START_SERVER = true
|
||||
OFFLINE_MODE = false
|
||||
LFS_JWT_SECRET = Tv_MjmZuHqpIY6GFl12ebgkRAMt4RlWt0v4EHKSXO0w
|
||||
APP_DATA_PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/data
|
||||
APP_DATA_PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/data
|
||||
ENABLE_GZIP = true
|
||||
BUILTIN_SSH_SERVER_USER = git
|
||||
SSH_TRUSTED_USER_CA_KEYS = ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCb4DC1dMFnJ6pXWo7GMxTchtzmJHYzfN6sZ9FAPFR4ijMLfGki+olvOMO5Fql1/yGnGfbELQa1S6y4shSvj/5K+zUFScmEXYf3Gcr87RqilLkyk16RS+cHNB1u87xTHbETaa3nyCJeGQRpd4IQ4NKob745mwDZ7jQBH8AZEng50Oh8y8fi8skBBBzaYp1ilgvzG740L7uex6fHV62myq0SXeCa+oJUjq326FU8y+Vsa32H8A3e7tOgXZPdt2TVNltx2S9H2WO8RMi7LfaSwARNfy1zu+bfR50r6ef8Yx5YKCMz4wWb1SHU1GS800mjOjlInLQORYRNMlSwR1+vLlVDciOqFapDSbj+YOVOawR0R1aqlSKpZkt33DuOBPx9qe6CVnIi7Z+Px/KqM+OLCzlLY/RS+LbxQpDWcfTVRiP+S5qRTcE3M3UioN/e0BE/1+MpX90IGpvVkA63ILYbKEa4bM3ASL7ChTCr6xN5XT+GpVJveFKK1cfNx9ExHI4rzYE=
|
||||
|
||||
[attachment]
|
||||
PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/data/attachments
|
||||
PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/data/attachments
|
||||
|
||||
[mailer]
|
||||
ENABLED = true
|
||||
|
|
@ -71,12 +71,12 @@ NO_REPLY_ADDRESS = noreply.example.org
|
|||
[picture]
|
||||
DISABLE_GRAVATAR = false
|
||||
ENABLE_FEDERATED_AVATAR = false
|
||||
AVATAR_UPLOAD_PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/data/avatars
|
||||
REPOSITORY_AVATAR_UPLOAD_PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/data/repo-avatars
|
||||
AVATAR_UPLOAD_PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/data/avatars
|
||||
REPOSITORY_AVATAR_UPLOAD_PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/data/repo-avatars
|
||||
|
||||
[session]
|
||||
PROVIDER = file
|
||||
PROVIDER_CONFIG = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/data/sessions
|
||||
PROVIDER_CONFIG = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/data/sessions
|
||||
|
||||
[log]
|
||||
MODE = {{TEST_LOGGER}}
|
||||
|
|
@ -103,7 +103,7 @@ DISABLE_QUERY_AUTH_TOKEN = true
|
|||
JWT_SECRET = KZb_QLUd4fYVyxetjxC4eZkrBgWM2SndOOWDNtgUUko
|
||||
|
||||
[lfs]
|
||||
PATH = tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/data/lfs
|
||||
PATH = {{PROJECT_ROOT}}/tests/{{TEST_TYPE}}/gitea-{{TEST_TYPE}}-sqlite/data/lfs
|
||||
|
||||
[packages]
|
||||
ENABLED = true
|
||||
|
|
@ -111,7 +111,7 @@ ENABLED = true
|
|||
[markup.html]
|
||||
ENABLED = true
|
||||
FILE_EXTENSIONS = .html
|
||||
RENDER_COMMAND = `go run build/test-echo.go`
|
||||
RENDER_COMMAND = `go run {{PROJECT_ROOT}}/build/test-echo.go`
|
||||
IS_INPUT_FILE = false
|
||||
RENDER_CONTENT_MODE=sanitized
|
||||
|
||||
|
|
|
|||
|
|
@ -376,6 +376,10 @@ var inTestEnv atomic.Bool
|
|||
func PrepareTestEnv(t testing.TB, skip ...int) func() {
|
||||
deferFn := PrepareTestEnvWithPackageData(t, skip...)
|
||||
PrepareCleanPackageData(t)
|
||||
|
||||
giteaRoot := base.SetupGiteaRoot()
|
||||
setting.AppWorkPath = giteaRoot
|
||||
|
||||
return deferFn
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue