From 891d81cc84618b15a74ca26312df472feb9d821d Mon Sep 17 00:00:00 2001 From: umarcor Date: Thu, 5 Sep 2019 09:04:48 +0200 Subject: [PATCH 1/4] fix: ensure that testproject is removed even after a failure --- cobra/cmd/init_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/cobra/cmd/init_test.go b/cobra/cmd/init_test.go index 9540b2d30..3060c527e 100644 --- a/cobra/cmd/init_test.go +++ b/cobra/cmd/init_test.go @@ -19,17 +19,17 @@ func TestGoldenInitCmd(t *testing.T) { AppName: "testproject", } - err := project.Create() - if err != nil { - t.Fatal(err) - } - defer func() { if _, err := os.Stat(project.AbsolutePath); err == nil { os.RemoveAll(project.AbsolutePath) } }() + err := project.Create() + if err != nil { + t.Fatal(err) + } + expectedFiles := []string{"LICENSE", "main.go", "cmd/root.go"} for _, f := range expectedFiles { generatedFile := fmt.Sprintf("%s/%s", project.AbsolutePath, f) From 7a0cf95b2a9f75502806622b7d94225202f76cfa Mon Sep 17 00:00:00 2001 From: umarcor Date: Thu, 5 Sep 2019 09:42:47 +0200 Subject: [PATCH 2/4] fix: defer licenseFile --- cobra/cmd/project.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cobra/cmd/project.go b/cobra/cmd/project.go index a53893ccd..ecd783d03 100644 --- a/cobra/cmd/project.go +++ b/cobra/cmd/project.go @@ -75,6 +75,7 @@ func (p *Project) createLicenseFile() error { if err != nil { return err } + defer licenseFile.Close() licenseTemplate := template.Must(template.New("license").Parse(p.Legal.Text)) return licenseTemplate.Execute(licenseFile, data) From c35f8b03e445af4cdb8077fe6c185becb00c0213 Mon Sep 17 00:00:00 2001 From: umarcor Date: Sun, 8 Sep 2019 15:40:54 +0200 Subject: [PATCH 3/4] style: simply defer os.RemoveAll --- cobra/cmd/add_test.go | 7 +------ cobra/cmd/init_test.go | 16 +++++++--------- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/cobra/cmd/add_test.go b/cobra/cmd/add_test.go index 0de1d221f..b3d01016b 100644 --- a/cobra/cmd/add_test.go +++ b/cobra/cmd/add_test.go @@ -23,15 +23,10 @@ func TestGoldenAddCmd(t *testing.T) { Viper: true, }, } + defer os.RemoveAll(command.AbsolutePath) // init project first command.Project.Create() - defer func() { - if _, err := os.Stat(command.AbsolutePath); err == nil { - os.RemoveAll(command.AbsolutePath) - } - }() - if err := command.Create(); err != nil { t.Fatal(err) } diff --git a/cobra/cmd/init_test.go b/cobra/cmd/init_test.go index 3060c527e..fd8f87f03 100644 --- a/cobra/cmd/init_test.go +++ b/cobra/cmd/init_test.go @@ -12,19 +12,17 @@ func TestGoldenInitCmd(t *testing.T) { wd, _ := os.Getwd() project := &Project{ AbsolutePath: fmt.Sprintf("%s/testproject", wd), - PkgName: "github.com/spf13/testproject", Legal: getLicense(), Copyright: copyrightLine(), - Viper: true, - AppName: "testproject", - } - defer func() { - if _, err := os.Stat(project.AbsolutePath); err == nil { - os.RemoveAll(project.AbsolutePath) - } - }() + // required to init + AppName: "testproject", + PkgName: "github.com/spf13/testproject", + Viper: true, + } + defer os.RemoveAll(project.AbsolutePath) + // init project first err := project.Create() if err != nil { t.Fatal(err) From ccf60c76a28c391bc9f14fa9af1d2b1d28a532ee Mon Sep 17 00:00:00 2001 From: umarcor Date: Tue, 17 Sep 2019 14:55:21 +0200 Subject: [PATCH 4/4] cobra/cmd: add getProject test func --- cobra/cmd/add_test.go | 14 +------------- cobra/cmd/init_test.go | 21 ++++++++++----------- 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/cobra/cmd/add_test.go b/cobra/cmd/add_test.go index b3d01016b..de92fcea6 100644 --- a/cobra/cmd/add_test.go +++ b/cobra/cmd/add_test.go @@ -7,25 +7,13 @@ import ( ) func TestGoldenAddCmd(t *testing.T) { - - wd, _ := os.Getwd() command := &Command{ CmdName: "test", CmdParent: parentName, - Project: &Project{ - AbsolutePath: fmt.Sprintf("%s/testproject", wd), - Legal: getLicense(), - Copyright: copyrightLine(), - - // required to init - AppName: "testproject", - PkgName: "github.com/spf13/testproject", - Viper: true, - }, + Project: getProject(), } defer os.RemoveAll(command.AbsolutePath) - // init project first command.Project.Create() if err := command.Create(); err != nil { t.Fatal(err) diff --git a/cobra/cmd/init_test.go b/cobra/cmd/init_test.go index fd8f87f03..8ee391061 100644 --- a/cobra/cmd/init_test.go +++ b/cobra/cmd/init_test.go @@ -7,24 +7,23 @@ import ( "testing" ) -func TestGoldenInitCmd(t *testing.T) { - +func getProject() *Project { wd, _ := os.Getwd() - project := &Project{ + return &Project{ AbsolutePath: fmt.Sprintf("%s/testproject", wd), Legal: getLicense(), Copyright: copyrightLine(), - - // required to init - AppName: "testproject", - PkgName: "github.com/spf13/testproject", - Viper: true, + AppName: "testproject", + PkgName: "github.com/spf13/testproject", + Viper: true, } +} + +func TestGoldenInitCmd(t *testing.T) { + project := getProject() defer os.RemoveAll(project.AbsolutePath) - // init project first - err := project.Create() - if err != nil { + if err := project.Create(); err != nil { t.Fatal(err) }