From 2f02ed18e9b706467c9474d024a25a0b7a9c0e97 Mon Sep 17 00:00:00 2001 From: Ethan Frey Date: Fri, 5 May 2017 14:58:53 +0200 Subject: [PATCH] One more helper function for cli tests... --- cli/helper.go | 20 ++++++++++++++++++++ cli/setup_test.go | 24 ++++-------------------- 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/cli/helper.go b/cli/helper.go index b0662c78..79654bc3 100644 --- a/cli/helper.go +++ b/cli/helper.go @@ -2,10 +2,30 @@ package cli import ( "bytes" + "fmt" "io" + "io/ioutil" "os" + "path/filepath" ) +// WriteDemoConfig writes a toml file with the given values. +// It returns the RootDir the config.toml file is stored in, +// or an error if writing was impossible +func WriteDemoConfig(vals map[string]string) (string, error) { + cdir, err := ioutil.TempDir("", "test-cli") + if err != nil { + return "", err + } + data := "" + for k, v := range vals { + data = data + fmt.Sprintf("%s = \"%s\"\n", k, v) + } + cfile := filepath.Join(cdir, "config.toml") + err = ioutil.WriteFile(cfile, []byte(data), 0666) + return cdir, err +} + // RunWithArgs executes the given command with the specified command line args // and environmental variables set. It returns any error returned from cmd.Execute() func RunWithArgs(cmd Executable, args []string, env map[string]string) error { diff --git a/cli/setup_test.go b/cli/setup_test.go index 34877209..6396b769 100644 --- a/cli/setup_test.go +++ b/cli/setup_test.go @@ -2,8 +2,6 @@ package cli import ( "fmt" - "io/ioutil" - "path/filepath" "strconv" "strings" "testing" @@ -57,30 +55,16 @@ func TestSetupEnv(t *testing.T) { } } -func writeConfig(vals map[string]string) (string, error) { - cdir, err := ioutil.TempDir("", "test-cli") - if err != nil { - return "", err - } - data := "" - for k, v := range vals { - data = data + fmt.Sprintf("%s = \"%s\"\n", k, v) - } - cfile := filepath.Join(cdir, "config.toml") - err = ioutil.WriteFile(cfile, []byte(data), 0666) - return cdir, err -} - func TestSetupConfig(t *testing.T) { assert, require := assert.New(t), require.New(t) // we pre-create two config files we can refer to in the rest of // the test cases. cval1, cval2 := "fubble", "wubble" - conf1, err := writeConfig(map[string]string{"boo": cval1}) + conf1, err := WriteDemoConfig(map[string]string{"boo": cval1}) require.Nil(err) // even with some ignored fields, should be no problem - conf2, err := writeConfig(map[string]string{"boo": cval2, "foo": "bar"}) + conf2, err := WriteDemoConfig(map[string]string{"boo": cval2, "foo": "bar"}) require.Nil(err) cases := []struct { @@ -135,10 +119,10 @@ func TestSetupUnmarshal(t *testing.T) { // we pre-create two config files we can refer to in the rest of // the test cases. cval1, cval2 := "someone", "else" - conf1, err := writeConfig(map[string]string{"name": cval1}) + conf1, err := WriteDemoConfig(map[string]string{"name": cval1}) require.Nil(err) // even with some ignored fields, should be no problem - conf2, err := writeConfig(map[string]string{"name": cval2, "foo": "bar"}) + conf2, err := WriteDemoConfig(map[string]string{"name": cval2, "foo": "bar"}) require.Nil(err) // unused is not declared on a flag and remains from base