Skip to content

Commit

Permalink
test: use T.TempDir to create temporary test directory (#21043)
Browse files Browse the repository at this point in the history
A testing cleanup. 

This pull request replaces `os.MkdirTemp` with `t.TempDir`. We can use the `T.TempDir` function from the `testing` package to create temporary directory. The directory created by `T.TempDir` is automatically removed when the test and all its subtests complete. 

This saves us at least 2 lines (error check, and cleanup) on every instance, or in some cases adds cleanup that we forgot.

Reference: https://pkg.go.dev/testing#T.TempDir

```go
func TestFoo(t *testing.T) {
	// before
	tmpDir, err := os.MkdirTemp("", "")
	require.NoError(t, err)
	defer os.RemoveAll(tmpDir)

	// now
	tmpDir := t.TempDir()
}
```

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
  • Loading branch information
Juneezee authored Sep 4, 2022
1 parent c722a26 commit 8b0aaa5
Show file tree
Hide file tree
Showing 24 changed files with 57 additions and 194 deletions.
3 changes: 1 addition & 2 deletions cmd/migrate_storage_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,7 @@ func TestMigratePackages(t *testing.T) {

ctx := context.Background()

p, err := os.MkdirTemp(os.TempDir(), "migrated_packages")
assert.NoError(t, err)
p := t.TempDir()

dstStorage, err := storage.NewLocalStorage(
ctx,
Expand Down
4 changes: 1 addition & 3 deletions models/db/engine_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
package db_test

import (
"os"
"path/filepath"
"testing"

Expand All @@ -20,8 +19,7 @@ import (
func TestDumpDatabase(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())

dir, err := os.MkdirTemp(os.TempDir(), "dump")
assert.NoError(t, err)
dir := t.TempDir()

type Version struct {
ID int64 `xorm:"pk autoincr"`
Expand Down
17 changes: 4 additions & 13 deletions modules/git/commit_info_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,25 @@ package git

import (
"context"
"os"
"path/filepath"
"testing"
"time"

"code.gitea.io/gitea/modules/util"

"github.com/stretchr/testify/assert"
)

const (
testReposDir = "tests/repos/"
)

func cloneRepo(url, name string) (string, error) {
repoDir, err := os.MkdirTemp("", name)
if err != nil {
return "", err
}
func cloneRepo(tb testing.TB, url string) (string, error) {
repoDir := tb.TempDir()
if err := Clone(DefaultContext, url, repoDir, CloneRepoOptions{
Mirror: false,
Bare: false,
Quiet: true,
Timeout: 5 * time.Minute,
}); err != nil {
_ = util.RemoveAll(repoDir)
return "", err
}
return repoDir, nil
Expand Down Expand Up @@ -118,11 +111,10 @@ func TestEntries_GetCommitsInfo(t *testing.T) {

testGetCommitsInfo(t, bareRepo1)

clonedPath, err := cloneRepo(bareRepo1Path, "repo1_TestEntries_GetCommitsInfo")
clonedPath, err := cloneRepo(t, bareRepo1Path)
if err != nil {
assert.NoError(t, err)
}
defer util.RemoveAll(clonedPath)
clonedRepo1, err := openRepositoryWithDefaultContext(clonedPath)
if err != nil {
assert.NoError(t, err)
Expand Down Expand Up @@ -150,11 +142,10 @@ func BenchmarkEntries_GetCommitsInfo(b *testing.B) {
var commit *Commit
var entries Entries
var repo *Repository
repoPath, err := cloneRepo(benchmark.url, benchmark.name)
repoPath, err := cloneRepo(b, benchmark.url)
if err != nil {
b.Fatal(err)
}
defer util.RemoveAll(repoPath)

if repo, err = openRepositoryWithDefaultContext(repoPath); err != nil {
b.Fatal(err)
Expand Down
8 changes: 2 additions & 6 deletions modules/git/repo_compare_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,16 @@ import (
"path/filepath"
"testing"

"code.gitea.io/gitea/modules/util"

"github.com/stretchr/testify/assert"
)

func TestGetFormatPatch(t *testing.T) {
bareRepo1Path := filepath.Join(testReposDir, "repo1_bare")
clonedPath, err := cloneRepo(bareRepo1Path, "repo1_TestGetFormatPatch")
clonedPath, err := cloneRepo(t, bareRepo1Path)
if err != nil {
assert.NoError(t, err)
return
}
defer util.RemoveAll(clonedPath)

repo, err := openRepositoryWithDefaultContext(clonedPath)
if err != nil {
Expand Down Expand Up @@ -84,12 +81,11 @@ func TestReadWritePullHead(t *testing.T) {
bareRepo1Path := filepath.Join(testReposDir, "repo1_bare")

// As we are writing we should clone the repository first
clonedPath, err := cloneRepo(bareRepo1Path, "TestReadWritePullHead")
clonedPath, err := cloneRepo(t, bareRepo1Path)
if err != nil {
assert.NoError(t, err)
return
}
defer util.RemoveAll(clonedPath)

repo, err := openRepositoryWithDefaultContext(clonedPath)
if err != nil {
Expand Down
8 changes: 2 additions & 6 deletions modules/git/repo_tag_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ import (
"path/filepath"
"testing"

"code.gitea.io/gitea/modules/util"

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
Expand Down Expand Up @@ -38,12 +36,11 @@ func TestRepository_GetTags(t *testing.T) {
func TestRepository_GetTag(t *testing.T) {
bareRepo1Path := filepath.Join(testReposDir, "repo1_bare")

clonedPath, err := cloneRepo(bareRepo1Path, "TestRepository_GetTag")
clonedPath, err := cloneRepo(t, bareRepo1Path)
if err != nil {
assert.NoError(t, err)
return
}
defer util.RemoveAll(clonedPath)

bareRepo1, err := openRepositoryWithDefaultContext(clonedPath)
if err != nil {
Expand Down Expand Up @@ -143,12 +140,11 @@ func TestRepository_GetTag(t *testing.T) {
func TestRepository_GetAnnotatedTag(t *testing.T) {
bareRepo1Path := filepath.Join(testReposDir, "repo1_bare")

clonedPath, err := cloneRepo(bareRepo1Path, "TestRepository_GetAnnotatedTag")
clonedPath, err := cloneRepo(t, bareRepo1Path)
if err != nil {
assert.NoError(t, err)
return
}
defer util.RemoveAll(clonedPath)

bareRepo1, err := openRepositoryWithDefaultContext(clonedPath)
if err != nil {
Expand Down
10 changes: 1 addition & 9 deletions modules/indexer/code/bleve_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,17 @@
package code

import (
"os"
"testing"

"code.gitea.io/gitea/models/unittest"
"code.gitea.io/gitea/modules/util"

"github.com/stretchr/testify/assert"
)

func TestBleveIndexAndSearch(t *testing.T) {
unittest.PrepareTestEnv(t)

dir, err := os.MkdirTemp("", "bleve.index")
assert.NoError(t, err)
if err != nil {
assert.Fail(t, "Unable to create temporary directory")
return
}
defer util.RemoveAll(dir)
dir := t.TempDir()

idx, _, err := NewBleveIndexer(dir)
if err != nil {
Expand Down
13 changes: 2 additions & 11 deletions modules/indexer/issues/bleve_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,13 @@ package issues

import (
"context"
"os"
"testing"

"code.gitea.io/gitea/modules/util"

"github.com/stretchr/testify/assert"
)

func TestBleveIndexAndSearch(t *testing.T) {
dir, err := os.MkdirTemp("", "bleve.index")
assert.NoError(t, err)
if err != nil {
assert.Fail(t, "Unable to create temporary directory")
return
}
defer util.RemoveAll(dir)
dir := t.TempDir()
indexer := NewBleveIndexer(dir)
defer indexer.Close()

Expand All @@ -30,7 +21,7 @@ func TestBleveIndexAndSearch(t *testing.T) {
return
}

err = indexer.Index([]*IndexerData{
err := indexer.Index([]*IndexerData{
{
ID: 1,
RepoID: 2,
Expand Down
9 changes: 1 addition & 8 deletions modules/indexer/issues/indexer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,13 @@ package issues

import (
"context"
"os"
"path"
"path/filepath"
"testing"
"time"

"code.gitea.io/gitea/models/unittest"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/util"

_ "code.gitea.io/gitea/models"

Expand All @@ -32,19 +30,14 @@ func TestBleveSearchIssues(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())
setting.Cfg = ini.Empty()

tmpIndexerDir, err := os.MkdirTemp("", "issues-indexer")
if err != nil {
assert.Fail(t, "Unable to create temporary directory: %v", err)
return
}
tmpIndexerDir := t.TempDir()

setting.Cfg.Section("queue.issue_indexer").Key("DATADIR").MustString(path.Join(tmpIndexerDir, "issues.queue"))

oldIssuePath := setting.Indexer.IssuePath
setting.Indexer.IssuePath = path.Join(tmpIndexerDir, "issues.queue")
defer func() {
setting.Indexer.IssuePath = oldIssuePath
util.RemoveAll(tmpIndexerDir)
}()

setting.Indexer.IssueType = "bleve"
Expand Down
20 changes: 5 additions & 15 deletions modules/log/file_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,11 @@ import (
"testing"
"time"

"code.gitea.io/gitea/modules/util"

"github.com/stretchr/testify/assert"
)

func TestFileLoggerFails(t *testing.T) {
tmpDir, err := os.MkdirTemp("", "TestFileLogger")
assert.NoError(t, err)
defer util.RemoveAll(tmpDir)
tmpDir := t.TempDir()

prefix := "TestPrefix "
level := INFO
Expand All @@ -34,7 +30,7 @@ func TestFileLoggerFails(t *testing.T) {
// assert.True(t, ok)

// Fail if there is bad json
err = fileLogger.Init("{")
err := fileLogger.Init("{")
assert.Error(t, err)

// Fail if there is no filename
Expand All @@ -47,9 +43,7 @@ func TestFileLoggerFails(t *testing.T) {
}

func TestFileLogger(t *testing.T) {
tmpDir, err := os.MkdirTemp("", "TestFileLogger")
assert.NoError(t, err)
defer util.RemoveAll(tmpDir)
tmpDir := t.TempDir()

prefix := "TestPrefix "
level := INFO
Expand Down Expand Up @@ -150,9 +144,7 @@ func TestFileLogger(t *testing.T) {
}

func TestCompressFileLogger(t *testing.T) {
tmpDir, err := os.MkdirTemp("", "TestFileLogger")
assert.NoError(t, err)
defer util.RemoveAll(tmpDir)
tmpDir := t.TempDir()

prefix := "TestPrefix "
level := INFO
Expand Down Expand Up @@ -210,9 +202,7 @@ func TestCompressFileLogger(t *testing.T) {
}

func TestCompressOldFile(t *testing.T) {
tmpDir, err := os.MkdirTemp("", "TestFileLogger")
assert.NoError(t, err)
defer util.RemoveAll(tmpDir)
tmpDir := t.TempDir()
fname := filepath.Join(tmpDir, "test")
nonGzip := filepath.Join(tmpDir, "test-nonGzip")

Expand Down
10 changes: 2 additions & 8 deletions modules/queue/queue_disk_channel_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@
package queue

import (
"os"
"sync"
"testing"
"time"

"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/util"

"github.com/stretchr/testify/assert"
)
Expand All @@ -33,9 +31,7 @@ func TestPersistableChannelQueue(t *testing.T) {
queueShutdown := []func(){}
queueTerminate := []func(){}

tmpDir, err := os.MkdirTemp("", "persistable-channel-queue-test-data")
assert.NoError(t, err)
defer util.RemoveAll(tmpDir)
tmpDir := t.TempDir()

queue, err := NewPersistableChannelQueue(handle, PersistableChannelQueueConfiguration{
DataDir: tmpDir,
Expand Down Expand Up @@ -223,9 +219,7 @@ func TestPersistableChannelQueue_Pause(t *testing.T) {
queueTerminate := []func(){}
terminated := make(chan struct{})

tmpDir, err := os.MkdirTemp("", "persistable-channel-queue-pause-test-data")
assert.NoError(t, err)
defer util.RemoveAll(tmpDir)
tmpDir := t.TempDir()

queue, err = NewPersistableChannelQueue(handle, PersistableChannelQueueConfiguration{
DataDir: tmpDir,
Expand Down
7 changes: 1 addition & 6 deletions modules/queue/queue_disk_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,10 @@
package queue

import (
"os"
"sync"
"testing"
"time"

"code.gitea.io/gitea/modules/util"

"github.com/stretchr/testify/assert"
)

Expand All @@ -30,9 +27,7 @@ func TestLevelQueue(t *testing.T) {
queueShutdown := []func(){}
queueTerminate := []func(){}

tmpDir, err := os.MkdirTemp("", "level-queue-test-data")
assert.NoError(t, err)
defer util.RemoveAll(tmpDir)
tmpDir := t.TempDir()

queue, err := NewLevelQueue(handle, LevelQueueConfiguration{
ByteFIFOQueueConfiguration: ByteFIFOQueueConfiguration{
Expand Down
Loading

0 comments on commit 8b0aaa5

Please sign in to comment.