Skip to content

Commit f550e35

Browse files
authored
Prevent services/mailer/mailer_test.go tests from deleteing data directory (#17941)
Running `make test-backend` will delete `data/` due to reloading the configuration and resetting the appdatapath. This PR removes this unnecessary config reload but also adds extra code in to the unittest main to prevent its cleanup from deleting the wrong directory. Signed-off-by: Andrew Thornton <[email protected]>
1 parent 3ca5dc7 commit f550e35

File tree

3 files changed

+23
-13
lines changed

3 files changed

+23
-13
lines changed

models/migrations/migrations_test.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"context"
99
"database/sql"
1010
"fmt"
11+
"io/ioutil"
1112
"os"
1213
"path"
1314
"path/filepath"
@@ -57,6 +58,14 @@ func TestMain(m *testing.M) {
5758
setting.CustomConf = giteaConf
5859
}
5960

61+
tmpDataPath, err := ioutil.TempDir("", "data")
62+
if err != nil {
63+
fmt.Printf("Unable to create temporary data path %v\n", err)
64+
os.Exit(1)
65+
}
66+
67+
setting.AppDataPath = tmpDataPath
68+
6069
setting.SetCustomPathAndConf("", "", "")
6170
setting.LoadForTest()
6271
git.CheckLFSVersion()
@@ -68,7 +77,7 @@ func TestMain(m *testing.M) {
6877
if err := removeAllWithRetry(setting.RepoRootPath); err != nil {
6978
fmt.Fprintf(os.Stderr, "os.RemoveAll: %v\n", err)
7079
}
71-
if err := removeAllWithRetry(setting.AppDataPath); err != nil {
80+
if err := removeAllWithRetry(tmpDataPath); err != nil {
7281
fmt.Fprintf(os.Stderr, "os.RemoveAll: %v\n", err)
7382
}
7483
os.Exit(exitStatus)

models/unittest/testdb.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,16 @@ func MainTest(m *testing.M, pathToGiteaRoot string, fixtureFiles ...string) {
6767
setting.SSH.Port = 3000
6868
setting.SSH.Domain = "try.gitea.io"
6969
setting.Database.UseSQLite3 = true
70-
setting.RepoRootPath, err = os.MkdirTemp(os.TempDir(), "repos")
70+
repoRootPath, err := os.MkdirTemp(os.TempDir(), "repos")
7171
if err != nil {
7272
fatalTestError("TempDir: %v\n", err)
7373
}
74-
setting.AppDataPath, err = os.MkdirTemp(os.TempDir(), "appdata")
74+
setting.RepoRootPath = repoRootPath
75+
appDataPath, err := os.MkdirTemp(os.TempDir(), "appdata")
7576
if err != nil {
7677
fatalTestError("TempDir: %v\n", err)
7778
}
79+
setting.AppDataPath = appDataPath
7880
setting.AppWorkPath = pathToGiteaRoot
7981
setting.StaticRootPath = pathToGiteaRoot
8082
setting.GravatarSourceURL, err = url.Parse("https://secure.gravatar.com/avatar/")
@@ -95,18 +97,18 @@ func MainTest(m *testing.M, pathToGiteaRoot string, fixtureFiles ...string) {
9597
fatalTestError("storage.Init: %v\n", err)
9698
}
9799

98-
if err = util.RemoveAll(setting.RepoRootPath); err != nil {
100+
if err = util.RemoveAll(repoRootPath); err != nil {
99101
fatalTestError("util.RemoveAll: %v\n", err)
100102
}
101103
if err = util.CopyDir(filepath.Join(pathToGiteaRoot, "integrations", "gitea-repositories-meta"), setting.RepoRootPath); err != nil {
102104
fatalTestError("util.CopyDir: %v\n", err)
103105
}
104106

105107
exitStatus := m.Run()
106-
if err = util.RemoveAll(setting.RepoRootPath); err != nil {
108+
if err = util.RemoveAll(repoRootPath); err != nil {
107109
fatalTestError("util.RemoveAll: %v\n", err)
108110
}
109-
if err = util.RemoveAll(setting.AppDataPath); err != nil {
111+
if err = util.RemoveAll(appDataPath); err != nil {
110112
fatalTestError("util.RemoveAll: %v\n", err)
111113
}
112114
os.Exit(exitStatus)

services/mailer/mailer_test.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,16 @@ import (
99
"time"
1010

1111
"code.gitea.io/gitea/modules/setting"
12-
1312
"github.com/stretchr/testify/assert"
1413
)
1514

1615
func TestGenerateMessageID(t *testing.T) {
17-
setting.LoadForTest(`
18-
[mailer]
19-
ENABLED = true
20-
21-
`)
22-
setting.NewServices()
16+
var mailService = setting.Mailer{
17+
18+
}
19+
20+
setting.MailService = &mailService
21+
setting.Domain = "localhost"
2322

2423
date := time.Date(2000, 01, 02, 03, 04, 05, 06, time.UTC)
2524
m := NewMessageFrom(nil, "display-name", "from-address", "subject", "body")

0 commit comments

Comments
 (0)