]> source.dussan.org Git - gitea.git/commitdiff
Prevent services/mailer/mailer_test.go tests from deleteing data directory (#17941)
authorzeripath <art27@cantab.net>
Fri, 10 Dec 2021 19:43:28 +0000 (19:43 +0000)
committerGitHub <noreply@github.com>
Fri, 10 Dec 2021 19:43:28 +0000 (19:43 +0000)
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 <art27@cantab.net>
models/migrations/migrations_test.go
models/unittest/testdb.go
services/mailer/mailer_test.go

index 2effcb99ebc6ca670c0813377fd08c447815366c..10ba3dde09597df15ced620271805eb75a90e2b1 100644 (file)
@@ -8,6 +8,7 @@ import (
        "context"
        "database/sql"
        "fmt"
+       "io/ioutil"
        "os"
        "path"
        "path/filepath"
@@ -57,6 +58,14 @@ func TestMain(m *testing.M) {
                setting.CustomConf = giteaConf
        }
 
+       tmpDataPath, err := ioutil.TempDir("", "data")
+       if err != nil {
+               fmt.Printf("Unable to create temporary data path %v\n", err)
+               os.Exit(1)
+       }
+
+       setting.AppDataPath = tmpDataPath
+
        setting.SetCustomPathAndConf("", "", "")
        setting.LoadForTest()
        git.CheckLFSVersion()
@@ -68,7 +77,7 @@ func TestMain(m *testing.M) {
        if err := removeAllWithRetry(setting.RepoRootPath); err != nil {
                fmt.Fprintf(os.Stderr, "os.RemoveAll: %v\n", err)
        }
-       if err := removeAllWithRetry(setting.AppDataPath); err != nil {
+       if err := removeAllWithRetry(tmpDataPath); err != nil {
                fmt.Fprintf(os.Stderr, "os.RemoveAll: %v\n", err)
        }
        os.Exit(exitStatus)
index 94c93755e0bd61e789d2c7c2f742f616a712ec8b..8083c607e5d5c2532fa7ea869e83aa6e2d815aa4 100644 (file)
@@ -67,14 +67,16 @@ func MainTest(m *testing.M, pathToGiteaRoot string, fixtureFiles ...string) {
        setting.SSH.Port = 3000
        setting.SSH.Domain = "try.gitea.io"
        setting.Database.UseSQLite3 = true
-       setting.RepoRootPath, err = os.MkdirTemp(os.TempDir(), "repos")
+       repoRootPath, err := os.MkdirTemp(os.TempDir(), "repos")
        if err != nil {
                fatalTestError("TempDir: %v\n", err)
        }
-       setting.AppDataPath, err = os.MkdirTemp(os.TempDir(), "appdata")
+       setting.RepoRootPath = repoRootPath
+       appDataPath, err := os.MkdirTemp(os.TempDir(), "appdata")
        if err != nil {
                fatalTestError("TempDir: %v\n", err)
        }
+       setting.AppDataPath = appDataPath
        setting.AppWorkPath = pathToGiteaRoot
        setting.StaticRootPath = pathToGiteaRoot
        setting.GravatarSourceURL, err = url.Parse("https://secure.gravatar.com/avatar/")
@@ -95,7 +97,7 @@ func MainTest(m *testing.M, pathToGiteaRoot string, fixtureFiles ...string) {
                fatalTestError("storage.Init: %v\n", err)
        }
 
-       if err = util.RemoveAll(setting.RepoRootPath); err != nil {
+       if err = util.RemoveAll(repoRootPath); err != nil {
                fatalTestError("util.RemoveAll: %v\n", err)
        }
        if err = util.CopyDir(filepath.Join(pathToGiteaRoot, "integrations", "gitea-repositories-meta"), setting.RepoRootPath); err != nil {
@@ -103,10 +105,10 @@ func MainTest(m *testing.M, pathToGiteaRoot string, fixtureFiles ...string) {
        }
 
        exitStatus := m.Run()
-       if err = util.RemoveAll(setting.RepoRootPath); err != nil {
+       if err = util.RemoveAll(repoRootPath); err != nil {
                fatalTestError("util.RemoveAll: %v\n", err)
        }
-       if err = util.RemoveAll(setting.AppDataPath); err != nil {
+       if err = util.RemoveAll(appDataPath); err != nil {
                fatalTestError("util.RemoveAll: %v\n", err)
        }
        os.Exit(exitStatus)
index 8505803d22a2414686f78273c20cb96713e6d6f5..1739a68a644144da04bc55c0d666f5e2596ae3dd 100644 (file)
@@ -9,17 +9,16 @@ import (
        "time"
 
        "code.gitea.io/gitea/modules/setting"
-
        "github.com/stretchr/testify/assert"
 )
 
 func TestGenerateMessageID(t *testing.T) {
-       setting.LoadForTest(`
-[mailer]
-ENABLED = true
-FROM = test@domain.com
-`)
-       setting.NewServices()
+       var mailService = setting.Mailer{
+               From: "test@gitea.com",
+       }
+
+       setting.MailService = &mailService
+       setting.Domain = "localhost"
 
        date := time.Date(2000, 01, 02, 03, 04, 05, 06, time.UTC)
        m := NewMessageFrom(nil, "display-name", "from-address", "subject", "body")