From 233e03237425aeb63732cf19c4a106c9c3e5f38f Mon Sep 17 00:00:00 2001 From: Eng Zer Jun Date: Sun, 10 Apr 2022 17:35:10 +0800 Subject: [PATCH] test: use `T.TempDir` to create temporary test directory This commit replaces `ioutil.TempDir` with `t.TempDir` in tests. The directory created by `t.TempDir` is automatically removed when the test and all its subtests complete. Prior to this commit, temporary directory created using `ioutil.TempDir` needs to be removed manually by calling `os.RemoveAll`, which is omitted in some tests. The error handling boilerplate e.g. defer func() { if err := os.RemoveAll(dir); err != nil { t.Fatal(err) } } is also tedious, but `t.TempDir` handles this for us nicely. Reference: https://pkg.go.dev/testing#T.TempDir Signed-off-by: Eng Zer Jun --- dialect_sqlite.go | 3 ++- dialect_sqlite_test.go | 10 ++-------- soda/cmd/generate/config_cmd_test.go | 5 +---- soda/cmd/generate/fizz_cmd_test.go | 5 +---- soda/cmd/generate/model_cmd_test.go | 9 ++------- 5 files changed, 8 insertions(+), 24 deletions(-) diff --git a/dialect_sqlite.go b/dialect_sqlite.go index 49306c30..1ac8691f 100644 --- a/dialect_sqlite.go +++ b/dialect_sqlite.go @@ -169,10 +169,11 @@ func (m *sqlite) CreateDB() error { if err != nil { return fmt.Errorf("could not create SQLite database '%s': %w", m.ConnectionDetails.Database, err) } - _, err = os.Create(m.ConnectionDetails.Database) + f, err := os.Create(m.ConnectionDetails.Database) if err != nil { return fmt.Errorf("could not create SQLite database '%s': %w", m.ConnectionDetails.Database, err) } + _ = f.Close() log(logging.Info, "created database '%s'", m.ConnectionDetails.Database) return nil diff --git a/dialect_sqlite_test.go b/dialect_sqlite_test.go index 16796f6d..83a0294a 100644 --- a/dialect_sqlite_test.go +++ b/dialect_sqlite_test.go @@ -4,8 +4,6 @@ package pop import ( "fmt" - "io/ioutil" - "os" "path/filepath" "testing" @@ -133,10 +131,8 @@ func Test_ConnectionDetails_Finalize_SQLite_OverrideOptions_Synonym_Path(t *test func Test_ConnectionDetails_FinalizeOSPath(t *testing.T) { r := require.New(t) - d, err := ioutil.TempDir("", "") - r.NoError(err) + d := t.TempDir() p := filepath.Join(d, "testdb.sqlite") - defer os.RemoveAll(p) cd := &ConnectionDetails{ Dialect: "sqlite", Database: p, @@ -148,10 +144,8 @@ func Test_ConnectionDetails_FinalizeOSPath(t *testing.T) { func TestSqlite_CreateDB(t *testing.T) { r := require.New(t) - dir, err := ioutil.TempDir("", "") - r.NoError(err) + dir := t.TempDir() p := filepath.Join(dir, "testdb.sqlite") - defer os.RemoveAll(p) cd := &ConnectionDetails{ Dialect: "sqlite", Database: p, diff --git a/soda/cmd/generate/config_cmd_test.go b/soda/cmd/generate/config_cmd_test.go index 51f21d7c..309121fb 100644 --- a/soda/cmd/generate/config_cmd_test.go +++ b/soda/cmd/generate/config_cmd_test.go @@ -1,7 +1,6 @@ package generate import ( - "io/ioutil" "os" "testing" @@ -13,9 +12,7 @@ func Test_ConfigCmd_NoArg(t *testing.T) { c := ConfigCmd c.SetArgs([]string{}) - tdir, err := ioutil.TempDir("", "testapp") - r.NoError(err) - defer os.RemoveAll(tdir) + tdir := t.TempDir() pwd, err := os.Getwd() r.NoError(err) diff --git a/soda/cmd/generate/fizz_cmd_test.go b/soda/cmd/generate/fizz_cmd_test.go index 59d3bfb1..04b7e6a3 100644 --- a/soda/cmd/generate/fizz_cmd_test.go +++ b/soda/cmd/generate/fizz_cmd_test.go @@ -1,7 +1,6 @@ package generate import ( - "io/ioutil" "os" "testing" @@ -13,9 +12,7 @@ func Test_FizzCmd_NoArg(t *testing.T) { c := FizzCmd c.SetArgs([]string{}) - tdir, err := ioutil.TempDir("", "testapp") - r.NoError(err) - defer os.RemoveAll(tdir) + tdir := t.TempDir() pwd, err := os.Getwd() r.NoError(err) diff --git a/soda/cmd/generate/model_cmd_test.go b/soda/cmd/generate/model_cmd_test.go index a70bc2e5..5dcb3de7 100644 --- a/soda/cmd/generate/model_cmd_test.go +++ b/soda/cmd/generate/model_cmd_test.go @@ -1,7 +1,6 @@ package generate import ( - "io/ioutil" "os" "path/filepath" "testing" @@ -14,9 +13,7 @@ func Test_ModelCmd_NoArg(t *testing.T) { c := ModelCmd c.SetArgs([]string{}) - tdir, err := ioutil.TempDir("", "testapp") - r.NoError(err) - defer os.RemoveAll(tdir) + tdir := t.TempDir() pwd, err := os.Getwd() r.NoError(err) @@ -32,9 +29,7 @@ func Test_ModelCmd_NameOnly(t *testing.T) { c := ModelCmd c.SetArgs([]string{"users"}) - tdir, err := ioutil.TempDir("", "testapp") - r.NoError(err) - defer os.RemoveAll(tdir) + tdir := t.TempDir() pwd, err := os.Getwd() r.NoError(err)