From 46d762176eafb748b2094bd518ecf66d86388779 Mon Sep 17 00:00:00 2001 From: baude Date: Wed, 1 Nov 2017 16:44:08 -0500 Subject: create_cli_test.go: Unittests Create unittests for the create_cli helper functions. As such, remove cli context usage from the functions to further divide between cli input and parsing. Also, simplifies unit testing. Signed-off-by: baude --- cmd/kpod/create_cli.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'cmd/kpod/create_cli.go') diff --git a/cmd/kpod/create_cli.go b/cmd/kpod/create_cli.go index 996155ba0..1cc00adc5 100644 --- a/cmd/kpod/create_cli.go +++ b/cmd/kpod/create_cli.go @@ -4,13 +4,12 @@ import ( "strings" "github.com/pkg/errors" - "github.com/urfave/cli" ) -func getAllLabels(cli *cli.Context) (map[string]string, error) { +func getAllLabels(labelFile, inputLabels []string) (map[string]string, error) { var labelValues []string labels := make(map[string]string) - labelValues, labelErr := readKVStrings(cli.StringSlice("label-file"), cli.StringSlice("label")) + labelValues, labelErr := readKVStrings(labelFile, inputLabels) if labelErr != nil { return labels, errors.Wrapf(labelErr, "unable to process labels from --label and label-file") } @@ -18,7 +17,7 @@ func getAllLabels(cli *cli.Context) (map[string]string, error) { if len(labelValues) > 0 { for _, i := range labelValues { spliti := strings.Split(i, "=") - if len(spliti) > 1 { + if len(spliti) < 2 { return labels, errors.Errorf("labels must be in KEY=VALUE format: %s is invalid", i) } labels[spliti[0]] = spliti[1] @@ -27,8 +26,8 @@ func getAllLabels(cli *cli.Context) (map[string]string, error) { return labels, nil } -func getAllEnvironmentVariables(cli *cli.Context) ([]string, error) { - env, err := readKVStrings(cli.StringSlice("env-file"), cli.StringSlice("env")) +func getAllEnvironmentVariables(envFiles, envInput []string) ([]string, error) { + env, err := readKVStrings(envFiles, envInput) if err != nil { return []string{}, errors.Wrapf(err, "unable to process variables from --env and --env-file") } @@ -36,6 +35,13 @@ func getAllEnvironmentVariables(cli *cli.Context) ([]string, error) { if len(env) == 0 { env = append(env, defaultEnvVariables...) } + // Each environment variable must be in the K=V format + for _,i := range env{ + spliti := strings.Split(i, "=") + if len(spliti) != 2 { + return env, errors.Errorf("environment variables must be in the format KEY=VALUE: %s is invalid", i) + } + } return env, nil } -- cgit v1.2.3-54-g00ecf From 0026075d59b5e6e90786ed21825ac43d4f59fa5a Mon Sep 17 00:00:00 2001 From: baude Date: Thu, 2 Nov 2017 13:17:09 -0500 Subject: libpod/runtime_img_test.go Unit Tests Unit tests for getRegistry related functions. Signed-off-by: baude --- cmd/kpod/create_cli.go | 2 +- cmd/kpod/spec_test.go | 19 ++++++++-------- libpod/runtime_img_test.go | 54 ++++++++++++++++++++++++++++++++++++++++++++++ libpod/util_test.go | 6 +++--- 4 files changed, 67 insertions(+), 14 deletions(-) create mode 100644 libpod/runtime_img_test.go (limited to 'cmd/kpod/create_cli.go') diff --git a/cmd/kpod/create_cli.go b/cmd/kpod/create_cli.go index 1cc00adc5..eaad46591 100644 --- a/cmd/kpod/create_cli.go +++ b/cmd/kpod/create_cli.go @@ -36,7 +36,7 @@ func getAllEnvironmentVariables(envFiles, envInput []string) ([]string, error) { env = append(env, defaultEnvVariables...) } // Each environment variable must be in the K=V format - for _,i := range env{ + for _, i := range env { spliti := strings.Split(i, "=") if len(spliti) != 2 { return env, errors.Errorf("environment variables must be in the format KEY=VALUE: %s is invalid", i) diff --git a/cmd/kpod/spec_test.go b/cmd/kpod/spec_test.go index 2f023f201..c3de84324 100644 --- a/cmd/kpod/spec_test.go +++ b/cmd/kpod/spec_test.go @@ -1,20 +1,19 @@ package main - import ( - "testing" "reflect" + "testing" - "github.com/stretchr/testify/assert" spec "github.com/opencontainers/runtime-spec/specs-go" + "github.com/stretchr/testify/assert" ) func TestCreateConfig_GetVolumeMounts(t *testing.T) { data := spec.Mount{ Destination: "/foobar", - Type: "bind", - Source: "foobar", - Options: []string{"ro", "rbind"}, + Type: "bind", + Source: "foobar", + Options: []string{"ro", "rbind"}, } config := createConfig{ volumes: []string{"foobar:/foobar:ro"}, @@ -26,11 +25,11 @@ func TestCreateConfig_GetVolumeMounts(t *testing.T) { func TestCreateConfig_GetTmpfsMounts(t *testing.T) { data := spec.Mount{ Destination: "/homer", - Type: "tmpfs", - Source: "tmpfs", - Options: []string{"rw", "size=787448k", "mode=1777"}, + Type: "tmpfs", + Source: "tmpfs", + Options: []string{"rw", "size=787448k", "mode=1777"}, } - config:= createConfig{ + config := createConfig{ tmpfs: []string{"/homer:rw,size=787448k,mode=1777"}, } tmpfsMount := config.GetTmpfsMounts() diff --git a/libpod/runtime_img_test.go b/libpod/runtime_img_test.go new file mode 100644 index 000000000..f7f7128a4 --- /dev/null +++ b/libpod/runtime_img_test.go @@ -0,0 +1,54 @@ +package libpod + +import ( + "io/ioutil" + "os" + "reflect" + "testing" + + "github.com/stretchr/testify/assert" +) + +var ( + registry = `[registries.search] +registries = ['one'] + +[registries.insecure] +registries = ['two']` +) + +func createTmpFile(content []byte) (string, error) { + tmpfile, err := ioutil.TempFile(os.TempDir(), "unittest") + if err != nil { + return "", err + } + + if _, err := tmpfile.Write(content); err != nil { + return "", err + + } + if err := tmpfile.Close(); err != nil { + return "", err + } + return tmpfile.Name(), nil +} + +func TestGetRegistries(t *testing.T) { + registryPath, err := createTmpFile([]byte(registry)) + assert.NoError(t, err) + defer os.Remove(registryPath) + os.Setenv("REGISTRIES_CONFIG_PATH", registryPath) + registries, err := GetRegistries() + assert.NoError(t, err) + assert.True(t, reflect.DeepEqual(registries, []string{"one"})) +} + +func TestGetInsecureRegistries(t *testing.T) { + registryPath, err := createTmpFile([]byte(registry)) + assert.NoError(t, err) + os.Setenv("REGISTRIES_CONFIG_PATH", registryPath) + defer os.Remove(registryPath) + registries, err := GetInsecureRegistries() + assert.NoError(t, err) + assert.True(t, reflect.DeepEqual(registries, []string{"two"})) +} diff --git a/libpod/util_test.go b/libpod/util_test.go index b3d336d1f..24e5fdfac 100644 --- a/libpod/util_test.go +++ b/libpod/util_test.go @@ -1,10 +1,10 @@ package libpod - import ( - "testing" "github.com/stretchr/testify/assert" + "testing" ) + var ( sliceData = []string{"one", "two", "three", "four"} ) @@ -16,4 +16,4 @@ func TestStringInSlice(t *testing.T) { assert.False(t, StringInSlice("five", sliceData)) // string is not in empty slice assert.False(t, StringInSlice("one", []string{})) -} \ No newline at end of file +} -- cgit v1.2.3-54-g00ecf