Format the output of cfg commands

This commit is contained in:
Phani Teja Marupaka
2020-09-11 14:42:45 -07:00
parent badc1177d9
commit fc690f14a8
25 changed files with 256 additions and 155 deletions

View File

@@ -103,10 +103,10 @@ func (r *AnnotateRunner) executeCmd(w io.Writer, pkgPath string) error {
return err return err
} else { } else {
// print error message and continue if there are multiple packages to annotate // print error message and continue if there are multiple packages to annotate
fmt.Fprintf(w, "%s in package %q\n", err.Error(), pkgPath) fmt.Fprintf(w, "%s\n", err.Error())
} }
} else { } else {
fmt.Fprintf(w, "added annotations in package %q\n", pkgPath) fmt.Fprint(w, "added annotations in the package\n")
} }
return nil return nil
} }

View File

@@ -501,9 +501,11 @@ func TestAnnotateSubPackages(t *testing.T) {
name: "annotate-recurse-subpackages", name: "annotate-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
args: []string{"--kv", "foo=bar", "-R"}, args: []string{"--kv", "foo=bar", "-R"},
expected: ` expected: `${baseDir}/mysql/
added annotations in package "${baseDir}/mysql" added annotations in the package
added annotations in package "${baseDir}/mysql/storage"
${baseDir}/mysql/storage/
added annotations in the package
`, `,
}, },
{ {
@@ -511,14 +513,18 @@ added annotations in package "${baseDir}/mysql/storage"
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
packagePath: "mysql", packagePath: "mysql",
args: []string{"--kv", "foo=bar"}, args: []string{"--kv", "foo=bar"},
expected: `added annotations in package "${baseDir}/mysql"`, expected: `${baseDir}/mysql/
added annotations in the package
`,
}, },
{ {
name: "annotate-nested-pkg-no-recurse-subpackages", name: "annotate-nested-pkg-no-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
packagePath: "mysql/storage", packagePath: "mysql/storage",
args: []string{"--kv", "foo=bar"}, args: []string{"--kv", "foo=bar"},
expected: `added annotations in package "${baseDir}/mysql/storage"`, expected: `${baseDir}/mysql/storage/
added annotations in the package
`,
}, },
} }
for i := range tests { for i := range tests {
@@ -550,7 +556,7 @@ added annotations in package "${baseDir}/mysql/storage"
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1) expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
expectedNormalized := strings.Replace(expected, "\\", "/", -1) expectedNormalized := strings.Replace(expected, "\\", "/", -1)
if !assert.Equal(t, strings.TrimSpace(expectedNormalized), strings.TrimSpace(actualNormalized)) { if !assert.Equal(t, expectedNormalized, actualNormalized) {
t.FailNow() t.FailNow()
} }
}) })

View File

@@ -102,6 +102,7 @@ func (r *CatRunner) runE(c *cobra.Command, args []string) error {
recurseSubPackages: r.RecurseSubPackages, recurseSubPackages: r.RecurseSubPackages,
cmdRunner: r, cmdRunner: r,
rootPkgPath: args[0], rootPkgPath: args[0],
skipPkgPathPrint: true,
} }
return e.execute() return e.execute()
@@ -133,7 +134,7 @@ func (r *CatRunner) executeCmd(w io.Writer, pkgPath string) error {
fmt.Fprintf(w, "%s in package %q\n", err.Error(), pkgPath) fmt.Fprintf(w, "%s in package %q\n", err.Error(), pkgPath)
} }
} }
fmt.Fprintf(w, "---\n") fmt.Fprintf(w, "---")
return nil return nil
} }

View File

@@ -115,8 +115,7 @@ metadata:
app: nginx app: nginx
spec: spec:
replicas: 3 replicas: 3
--- ---`, b.String()) {
`, b.String()) {
return return
} }
} }
@@ -172,8 +171,7 @@ metadata:
annotations: annotations:
app: nginx app: nginx
spec: spec:
replicas: 3 replicas: 3`), 0600)
`), 0600)
if !assert.NoError(t, err) { if !assert.NoError(t, err) {
return return
} }
@@ -227,8 +225,7 @@ metadata:
app: nginx app: nginx
spec: spec:
replicas: 3 replicas: 3
--- ---`, b.String()) {
`, b.String()) {
return return
} }
} }
@@ -310,8 +307,7 @@ metadata:
image: gcr.io/example/reconciler:v1 image: gcr.io/example/reconciler:v1
spec: spec:
replicas: 3 replicas: 3
--- ---`, b.String()) {
`, b.String()) {
return return
} }
} }
@@ -368,8 +364,7 @@ metadata:
annotations: annotations:
app: nginx app: nginx
spec: spec:
replicas: 3 replicas: 3`), 0600)
`), 0600)
if !assert.NoError(t, err) { if !assert.NoError(t, err) {
return return
} }
@@ -426,8 +421,7 @@ metadata:
app: nginx app: nginx
spec: spec:
replicas: 3 replicas: 3
--- ---`, string(actual)) {
`, string(actual)) {
return return
} }
} }
@@ -484,8 +478,7 @@ metadata:
annotations: annotations:
app: nginx app: nginx
spec: spec:
replicas: 3 replicas: 3`), 0600)
`), 0600)
if !assert.NoError(t, err) { if !assert.NoError(t, err) {
return return
} }
@@ -543,8 +536,7 @@ metadata:
app: nginx app: nginx
spec: spec:
replicas: 3 replicas: 3
--- ---`, string(actual)) {
`, string(actual)) {
return return
} }
} }
@@ -560,8 +552,7 @@ func TestCatSubPackages(t *testing.T) {
{ {
name: "cat-recurse-subpackages", name: "cat-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
expected: ` expected: `# Copyright 2019 The Kubernetes Authors.
# Copyright 2019 The Kubernetes Authors.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
apiVersion: apps/v1 apiVersion: apps/v1
@@ -592,16 +583,14 @@ spec:
containers: containers:
- name: storage - name: storage
image: storage:1.7.7 image: storage:1.7.7
--- ---`,
`,
}, },
{ {
name: "cat-top-level-pkg-no-recurse-subpackages", name: "cat-top-level-pkg-no-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
args: []string{"-R=false"}, args: []string{"-R=false"},
packagePath: "mysql", packagePath: "mysql",
expected: ` expected: `# Copyright 2019 The Kubernetes Authors.
# Copyright 2019 The Kubernetes Authors.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
apiVersion: apps/v1 apiVersion: apps/v1
@@ -616,16 +605,14 @@ spec:
containers: containers:
- name: mysql - name: mysql
image: mysql:1.7.9 image: mysql:1.7.9
--- ---`,
`,
}, },
{ {
name: "cat-nested-pkg-no-recurse-subpackages", name: "cat-nested-pkg-no-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
packagePath: "mysql/storage", packagePath: "mysql/storage",
args: []string{"-R=false"}, args: []string{"-R=false"},
expected: ` expected: `# Copyright 2019 The Kubernetes Authors.
# Copyright 2019 The Kubernetes Authors.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
apiVersion: apps/v1 apiVersion: apps/v1
@@ -672,7 +659,7 @@ spec:
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1) expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
expectedNormalized := strings.Replace(expected, "\\", "/", -1) expectedNormalized := strings.Replace(expected, "\\", "/", -1)
if !assert.Equal(t, strings.TrimSpace(expectedNormalized), strings.TrimSpace(actualNormalized)) { if !assert.Equal(t, expectedNormalized, actualNormalized) {
t.FailNow() t.FailNow()
} }
}) })

View File

@@ -231,10 +231,10 @@ func (r *CreateSetterRunner) executeCmd(w io.Writer, pkgPath string) error {
return err return err
} else { } else {
// print error message and continue if RecurseSubPackages is true // print error message and continue if RecurseSubPackages is true
fmt.Fprintf(w, "%s in package %q\n\n", err.Error(), pkgPath) fmt.Fprintf(w, "%s\n", err.Error())
} }
} else { } else {
fmt.Fprintf(w, "created setter %q in package %q\n\n", r.CreateSetter.Name, pkgPath) fmt.Fprintf(w, "created setter %q\n", r.CreateSetter.Name)
} }
return nil return nil
} }

View File

@@ -44,7 +44,7 @@ spec:
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
`, `,
out: `created setter "replicas" in package "${baseDir}"`, out: `created setter "replicas"`,
expectedOpenAPI: ` expectedOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -83,7 +83,7 @@ spec:
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
`, `,
out: `created setter "replicas" in package "${baseDir}"`, out: `created setter "replicas"`,
expectedOpenAPI: ` expectedOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -162,7 +162,7 @@ spec:
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
`, `,
out: `created setter "replicas" in package "${baseDir}"`, out: `created setter "replicas"`,
expectedOpenAPI: ` expectedOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -204,7 +204,7 @@ spec:
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
`, `,
out: `created setter replicas in package ${baseDir}`, out: `created setter replicas`,
expectedOpenAPI: ` expectedOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -259,7 +259,7 @@ spec:
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
`, `,
out: `created setter "list" in package "${baseDir}"`, out: `created setter "list"`,
expectedOpenAPI: ` expectedOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -360,7 +360,7 @@ spec:
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
`, `,
out: `created setter replicas in package ${baseDir}`, out: `created setter replicas`,
expectedOpenAPI: ` expectedOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -407,7 +407,7 @@ spec:
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
`, `,
out: `created setter "replicas" in package "${baseDir}"`, out: `created setter "replicas"`,
expectedOpenAPI: ` expectedOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -445,7 +445,7 @@ spec:
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
`, `,
out: `created setter "foo.bar" in package "${baseDir}"`, out: `created setter "foo.bar"`,
expectedOpenAPI: ` expectedOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -596,7 +596,7 @@ spec:
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
`, `,
out: `created setter "replicas" in package "${baseDir}"`, out: `created setter "replicas"`,
expectedOpenAPI: ` expectedOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -722,7 +722,7 @@ spec:
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
`, `,
out: `created setter "replicas" in package "${baseDir}"`, out: `created setter "replicas"`,
expectedOpenAPI: ` expectedOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -814,7 +814,7 @@ spec:
strings.Replace(out.String(), "\\", "/", -1), strings.Replace(out.String(), "\\", "/", -1),
"//", "/", -1) "//", "/", -1)
if !assert.Equal(t, expectedNormalized, strings.TrimSpace(actualNormalized)) { if !assert.Contains(t, actualNormalized, expectedNormalized) {
t.FailNow() t.FailNow()
} }
@@ -853,10 +853,11 @@ func TestCreateSetterSubPackages(t *testing.T) {
name: "create-setter-recurse-subpackages", name: "create-setter-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
args: []string{"namespace", "myspace", "-R"}, args: []string{"namespace", "myspace", "-R"},
expected: ` expected: `${baseDir}/mysql/
created setter "namespace" in package "${baseDir}/mysql" created setter "namespace"
created setter "namespace" in package "${baseDir}/mysql/storage" ${baseDir}/mysql/storage/
created setter "namespace"
`, `,
}, },
{ {
@@ -864,25 +865,33 @@ created setter "namespace" in package "${baseDir}/mysql/storage"
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
packagePath: "mysql", packagePath: "mysql",
args: []string{"namespace", "myspace"}, args: []string{"namespace", "myspace"},
expected: `created setter "namespace" in package "${baseDir}/mysql"`, expected: `${baseDir}/mysql/
created setter "namespace"
`,
}, },
{ {
name: "create-setter-nested-pkg-no-recurse-subpackages", name: "create-setter-nested-pkg-no-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
packagePath: "mysql/storage", packagePath: "mysql/storage",
args: []string{"namespace", "myspace"}, args: []string{"namespace", "myspace"},
expected: `created setter "namespace" in package "${baseDir}/mysql/storage"`, expected: `${baseDir}/mysql/storage/
created setter "namespace"
`,
}, },
{ {
name: "create-setter-already-exists", name: "create-setter-already-exists",
dataset: "dataset-with-setters", dataset: "dataset-with-setters",
packagePath: "mysql", packagePath: "mysql",
args: []string{"namespace", "myspace", "-R"}, args: []string{"namespace", "myspace", "-R"},
expected: `setter with name "namespace" already exists, if you want to modify it, please delete the existing setter and recreate it in package "${baseDir}/mysql" expected: `${baseDir}/mysql/
setter with name "namespace" already exists, if you want to modify it, please delete the existing setter and recreate it
created setter "namespace" in package "${baseDir}/mysql/nosetters" ${baseDir}/mysql/nosetters/
created setter "namespace"
setter with name "namespace" already exists, if you want to modify it, please delete the existing setter and recreate it in package "${baseDir}/mysql/storage"`, ${baseDir}/mysql/storage/
setter with name "namespace" already exists, if you want to modify it, please delete the existing setter and recreate it
`,
}, },
} }
for i := range tests { for i := range tests {
@@ -914,7 +923,7 @@ setter with name "namespace" already exists, if you want to modify it, please de
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1) expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
expectedNormalized := strings.Replace(expected, "\\", "/", -1) expectedNormalized := strings.Replace(expected, "\\", "/", -1)
if !assert.Equal(t, strings.TrimSpace(expectedNormalized), strings.TrimSpace(actualNormalized)) { if !assert.Equal(t, expectedNormalized, actualNormalized) {
t.FailNow() t.FailNow()
} }
}) })

View File

@@ -87,10 +87,10 @@ func (r *CreateSubstitutionRunner) executeCmd(w io.Writer, pkgPath string) error
return err return err
} else { } else {
// print error message and continue if RecurseSubPackages is true // print error message and continue if RecurseSubPackages is true
fmt.Fprintf(w, "%s in package %q\n\n", err.Error(), pkgPath) fmt.Fprintf(w, "%s\n", err.Error())
} }
} else { } else {
fmt.Fprintf(w, "created substitution %q in package %q\n\n", r.CreateSubstitution.Name, pkgPath) fmt.Fprintf(w, "created substitution %q\n", r.CreateSubstitution.Name)
} }
return nil return nil
} }

View File

@@ -63,7 +63,7 @@ openAPI:
name: my-tag-setter name: my-tag-setter
value: "1.7.9" value: "1.7.9"
`, `,
out: `created substitution "my-image-subst" in package "${baseDir}"`, out: `created substitution "my-image-subst"`,
expectedOpenAPI: ` expectedOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -167,7 +167,7 @@ spec:
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
`, `,
out: `created substitution "my-image-subst" in package "${baseDir}"`, out: `created substitution "my-image-subst"`,
expectedOpenAPI: ` expectedOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -256,7 +256,7 @@ openAPI:
- marker: ${my-tag-setter} - marker: ${my-tag-setter}
ref: '#/definitions/io.k8s.cli.setters.my-tag-setter' ref: '#/definitions/io.k8s.cli.setters.my-tag-setter'
`, `,
out: `created substitution "my-nested-subst" in package "${baseDir}"`, out: `created substitution "my-nested-subst"`,
expectedOpenAPI: ` expectedOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -400,7 +400,7 @@ spec:
strings.Replace(out.String(), "\\", "/", -1), strings.Replace(out.String(), "\\", "/", -1),
"//", "/", -1) "//", "/", -1)
if !assert.Equal(t, expectedNormalized, strings.TrimSpace(actualNormalized)) { if !assert.Contains(t, actualNormalized, expectedNormalized) {
t.FailNow() t.FailNow()
} }
@@ -439,10 +439,11 @@ func TestCreateSubstSubPackages(t *testing.T) {
name: "create-subst-recurse-subpackages", name: "create-subst-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
args: []string{"image-tag", "--field-value", "mysql:1.7.9", "--pattern", "${image}:${tag}", "-R"}, args: []string{"image-tag", "--field-value", "mysql:1.7.9", "--pattern", "${image}:${tag}", "-R"},
expected: ` expected: `${baseDir}/mysql/
created substitution "image-tag" in package "${baseDir}/mysql" created substitution "image-tag"
created substitution "image-tag" in package "${baseDir}/mysql/storage" ${baseDir}/mysql/storage/
created substitution "image-tag"
`, `,
}, },
{ {
@@ -450,25 +451,30 @@ created substitution "image-tag" in package "${baseDir}/mysql/storage"
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
packagePath: "mysql", packagePath: "mysql",
args: []string{"image-tag", "--field-value", "mysql:1.7.9", "--pattern", "${image}:${tag}"}, args: []string{"image-tag", "--field-value", "mysql:1.7.9", "--pattern", "${image}:${tag}"},
expected: `created substitution "image-tag" in package "${baseDir}/mysql"`, expected: `${baseDir}/mysql/
created substitution "image-tag"`,
}, },
{ {
name: "create-subst-nested-pkg-no-recurse-subpackages", name: "create-subst-nested-pkg-no-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
packagePath: "mysql/storage", packagePath: "mysql/storage",
args: []string{"image-tag", "--field-value", "storage:1.7.9", "--pattern", "${image}:${tag}"}, args: []string{"image-tag", "--field-value", "storage:1.7.9", "--pattern", "${image}:${tag}"},
expected: `created substitution "image-tag" in package "${baseDir}/mysql/storage"`, expected: `${baseDir}/mysql/storage/
created substitution "image-tag"`,
}, },
{ {
name: "create-subst-already-exists", name: "create-subst-already-exists",
dataset: "dataset-with-setters", dataset: "dataset-with-setters",
packagePath: "mysql", packagePath: "mysql",
args: []string{"image-tag", "--field-value", "mysql:1.7.9", "--pattern", "${image}:${tag}", "-R"}, args: []string{"image-tag", "--field-value", "mysql:1.7.9", "--pattern", "${image}:${tag}", "-R"},
expected: `substitution with name "image-tag" already exists in package "${baseDir}/mysql" expected: `${baseDir}/mysql/
substitution with name "image-tag" already exists
created substitution "image-tag" in package "${baseDir}/mysql/nosetters" ${baseDir}/mysql/nosetters/
created substitution "image-tag"
created substitution "image-tag" in package "${baseDir}/mysql/storage"`, ${baseDir}/mysql/storage/
created substitution "image-tag"`,
}, },
} }
for i := range tests { for i := range tests {

View File

@@ -95,10 +95,10 @@ func (r *DeleteSetterRunner) executeCmd(w io.Writer, pkgPath string) error {
return err return err
} else { } else {
// print error message and continue if RecurseSubPackages is true // print error message and continue if RecurseSubPackages is true
fmt.Fprintf(w, "%s in package %q\n\n", err.Error(), pkgPath) fmt.Fprintf(w, "%s\n", err.Error())
} }
} else { } else {
fmt.Fprintf(w, "deleted setter %q in package %q\n\n", r.DeleteSetter.Name, pkgPath) fmt.Fprintf(w, "deleted setter %q\n", r.DeleteSetter.Name)
} }
return nil return nil
} }

View File

@@ -53,7 +53,7 @@ openAPI:
value: "3" value: "3"
setBy: me setBy: me
`, `,
out: `deleted setter "replicas-setter" in package "${baseDir}"`, out: `deleted setter "replicas-setter"`,
expectedOpenAPI: ` expectedOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -97,7 +97,7 @@ openAPI:
name: image name: image
value: nginx value: nginx
`, `,
out: `deleted setter "replicas-setter" in package "${baseDir}"`, out: `deleted setter "replicas-setter"`,
expectedOpenAPI: ` expectedOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -161,7 +161,7 @@ spec:
- "b" - "b"
- "c" - "c"
`, `,
out: `deleted setter "list" in package "${baseDir}"`, out: `deleted setter "list"`,
expectedResources: ` expectedResources: `
apiVersion: example.com/v1beta1 apiVersion: example.com/v1beta1
kind: Example1 kind: Example1
@@ -347,7 +347,7 @@ kind: Deployment
expectedOut := strings.Replace(test.out, "${baseDir}", baseDir, -1) expectedOut := strings.Replace(test.out, "${baseDir}", baseDir, -1)
expectedNormalized := strings.Replace(expectedOut, "\\", "/", -1) expectedNormalized := strings.Replace(expectedOut, "\\", "/", -1)
if !assert.Equal(t, expectedNormalized, strings.TrimSpace(actualNorm)) { if !assert.Contains(t, strings.TrimSpace(actualNorm), expectedNormalized) {
t.FailNow() t.FailNow()
} }
@@ -386,12 +386,14 @@ func TestDeleteSetterSubPackages(t *testing.T) {
name: "delete-setter-recurse-subpackages", name: "delete-setter-recurse-subpackages",
dataset: "dataset-with-setters", dataset: "dataset-with-setters",
args: []string{"namespace", "-R"}, args: []string{"namespace", "-R"},
expected: ` expected: `${baseDir}/mysql/
deleted setter "namespace" in package "${baseDir}/mysql" deleted setter "namespace"
setter "namespace" does not exist in package "${baseDir}/mysql/nosetters" ${baseDir}/mysql/nosetters/
setter "namespace" does not exist
deleted setter "namespace" in package "${baseDir}/mysql/storage" ${baseDir}/mysql/storage/
deleted setter "namespace"
`, `,
}, },
{ {
@@ -399,14 +401,18 @@ deleted setter "namespace" in package "${baseDir}/mysql/storage"
dataset: "dataset-with-setters", dataset: "dataset-with-setters",
packagePath: "mysql", packagePath: "mysql",
args: []string{"namespace"}, args: []string{"namespace"},
expected: `deleted setter "namespace" in package "${baseDir}/mysql"`, expected: `${baseDir}/mysql/
deleted setter "namespace"
`,
}, },
{ {
name: "delete-setter-nested-pkg-no-recurse-subpackages", name: "delete-setter-nested-pkg-no-recurse-subpackages",
dataset: "dataset-with-setters", dataset: "dataset-with-setters",
packagePath: "mysql/storage", packagePath: "mysql/storage",
args: []string{"namespace"}, args: []string{"namespace"},
expected: `deleted setter "namespace" in package "${baseDir}/mysql/storage"`, expected: `${baseDir}/mysql/storage/
deleted setter "namespace"
`,
}, },
} }
for i := range tests { for i := range tests {
@@ -438,7 +444,7 @@ deleted setter "namespace" in package "${baseDir}/mysql/storage"
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1) expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
expectedNormalized := strings.Replace(expected, "\\", "/", -1) expectedNormalized := strings.Replace(expected, "\\", "/", -1)
if !assert.Equal(t, strings.TrimSpace(expectedNormalized), strings.TrimSpace(actualNormalized)) { if !assert.Equal(t, expectedNormalized, actualNormalized) {
t.FailNow() t.FailNow()
} }
}) })

View File

@@ -11,7 +11,6 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
"sigs.k8s.io/kustomize/cmd/config/ext" "sigs.k8s.io/kustomize/cmd/config/ext"
"sigs.k8s.io/kustomize/kyaml/fieldmeta" "sigs.k8s.io/kustomize/kyaml/fieldmeta"
"sigs.k8s.io/kustomize/kyaml/openapi"
"sigs.k8s.io/kustomize/kyaml/setters2/settersutil" "sigs.k8s.io/kustomize/kyaml/setters2/settersutil"
) )
@@ -53,10 +52,6 @@ func (r *DeleteSubstitutionRunner) preRunE(c *cobra.Command, args []string) erro
return err return err
} }
if err := openapi.AddSchemaFromFile(r.OpenAPIFile); err != nil {
return err
}
return nil return nil
} }
@@ -96,10 +91,10 @@ func (r *DeleteSubstitutionRunner) executeCmd(w io.Writer, pkgPath string) error
return err return err
} else { } else {
// print error message and continue if RecurseSubPackages is true // print error message and continue if RecurseSubPackages is true
fmt.Fprintf(w, "%s in package %q\n\n", err.Error(), pkgPath) fmt.Fprintf(w, "%s\n", err.Error())
} }
} else { } else {
fmt.Fprintf(w, "deleted substitution %q in package %q\n\n", r.DeleteSubstitution.Name, pkgPath) fmt.Fprintf(w, "deleted substitution %q\n", r.DeleteSubstitution.Name)
} }
return nil return nil
} }

View File

@@ -13,6 +13,7 @@ import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"sigs.k8s.io/kustomize/cmd/config/internal/commands" "sigs.k8s.io/kustomize/cmd/config/internal/commands"
"sigs.k8s.io/kustomize/kyaml/copyutil"
"sigs.k8s.io/kustomize/kyaml/openapi" "sigs.k8s.io/kustomize/kyaml/openapi"
) )
@@ -79,7 +80,7 @@ spec:
- name: sidecar - name: sidecar
image: nginx:1.7.9 # {"$ref":"#/definitions/io.k8s.cli.substitutions.my.image"} image: nginx:1.7.9 # {"$ref":"#/definitions/io.k8s.cli.substitutions.my.image"}
`, `,
out: `deleted substitution "my.image" in package "${baseDir}"`, out: `deleted substitution "my.image"`,
expectedResources: ` expectedResources: `
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
@@ -170,7 +171,7 @@ spec:
- name: sidecar - name: sidecar
image: nginx:1.7.9 # {"$openapi":"my-image-sub"} image: nginx:1.7.9 # {"$openapi":"my-image-sub"}
`, `,
out: `deleted substitution "my-image-sub" in package "${baseDir}"`, out: `deleted substitution "my-image-sub"`,
expectedResources: ` expectedResources: `
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
@@ -472,7 +473,7 @@ spec:
expectedOut := strings.Replace(test.out, "${baseDir}", baseDir, -1) expectedOut := strings.Replace(test.out, "${baseDir}", baseDir, -1)
expectedNorm := strings.Replace(expectedOut, "\\", "/", -1) expectedNorm := strings.Replace(expectedOut, "\\", "/", -1)
if !assert.Equal(t, expectedNorm, strings.TrimSpace(actualNorm)) { if !assert.Contains(t, strings.TrimSpace(actualNorm), expectedNorm) {
t.FailNow() t.FailNow()
} }
@@ -495,7 +496,74 @@ spec:
strings.TrimSpace(string(actualResources))) { strings.TrimSpace(string(actualResources))) {
t.FailNow() t.FailNow()
} }
})
}
}
func TestDeleteSubstitutionSubPackages(t *testing.T) {
var tests = []struct {
name string
dataset string
packagePath string
args []string
expected string
}{
{
name: "delete-substitution-recurse-subpackages",
dataset: "dataset-with-setters",
args: []string{"image-tag", "-R"},
expected: `${baseDir}/mysql/
deleted substitution "image-tag"
${baseDir}/mysql/nosetters/
substitution "image-tag" does not exist
${baseDir}/mysql/storage/
substitution "image-tag" does not exist
`,
},
{
name: "delete-setter-top-level-pkg-no-recurse-subpackages",
dataset: "dataset-with-setters",
packagePath: "mysql",
args: []string{"image-tag"},
expected: `${baseDir}/mysql/
deleted substitution "image-tag"
`,
},
}
for i := range tests {
test := tests[i]
t.Run(test.name, func(t *testing.T) {
// reset the openAPI afterward
openapi.ResetOpenAPI()
defer openapi.ResetOpenAPI()
sourceDir := filepath.Join("test", "testdata", test.dataset)
baseDir, err := ioutil.TempDir("", "")
if !assert.NoError(t, err) {
t.FailNow()
}
copyutil.CopyDir(sourceDir, baseDir)
//defer os.RemoveAll(baseDir)
runner := commands.NewDeleteSubstitutionRunner("")
actual := &bytes.Buffer{}
runner.Command.SetOut(actual)
runner.Command.SetArgs(append([]string{filepath.Join(baseDir, test.packagePath)}, test.args...))
err = runner.Command.Execute()
if !assert.NoError(t, err) {
t.FailNow()
}
// normalize path format for windows
actualNormalized := strings.Replace(
strings.Replace(actual.String(), "\\", "/", -1),
"//", "/", -1)
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
expectedNormalized := strings.Replace(expected, "\\", "/", -1)
if !assert.Equal(t, expectedNormalized, actualNormalized) {
t.FailNow()
}
}) })
} }
} }

View File

@@ -94,7 +94,6 @@ func (r *ListSettersRunner) executeCmd(w io.Writer, pkgPath string) error {
OpenAPIFileName: openAPIFileName, OpenAPIFileName: openAPIFileName,
} }
openAPIPath := filepath.Join(pkgPath, openAPIFileName) openAPIPath := filepath.Join(pkgPath, openAPIFileName)
fmt.Fprintf(w, "\n%s/\n", pkgPath)
if err := r.ListSetters(w, openAPIPath, pkgPath); err != nil { if err := r.ListSetters(w, openAPIPath, pkgPath); err != nil {
return err return err
} }

View File

@@ -178,10 +178,10 @@ func (r *SetRunner) executeCmd(w io.Writer, pkgPath string) error {
return err return err
} else { } else {
// print error message and continue if RecurseSubPackages is true // print error message and continue if RecurseSubPackages is true
fmt.Fprintf(w, "%s in package %q\n", err.Error(), r.Set.ResourcesPath) fmt.Fprintf(w, "%s\n", err.Error())
} }
} else { } else {
fmt.Fprintf(w, "set %d fields in package %q\n", count, r.Set.ResourcesPath) fmt.Fprintf(w, "set %d field(s)\n", count)
} }
return nil return nil
} }

View File

@@ -31,7 +31,7 @@ func TestSetCommand(t *testing.T) {
{ {
name: "set replicas", name: "set replicas",
args: []string{"replicas", "4", "--description", "hi there", "--set-by", "pw"}, args: []string{"replicas", "4", "--description", "hi there", "--set-by", "pw"},
out: "set 1 fields\n", out: "set 1 field(s)\n",
inputOpenAPI: ` inputOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -127,7 +127,7 @@ spec:
{ {
name: "set replicas no description", name: "set replicas no description",
args: []string{"replicas", "4"}, args: []string{"replicas", "4"},
out: "set 1 fields\n", out: "set 1 field(s)\n",
inputOpenAPI: ` inputOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -175,7 +175,7 @@ spec:
{ {
name: "set image with value", name: "set image with value",
args: []string{"tag", "1.8.1"}, args: []string{"tag", "1.8.1"},
out: "set 1 fields\n", out: "set 1 field(s)\n",
inputOpenAPI: ` inputOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -510,7 +510,7 @@ list in body should have at most 2 items`,
{ {
name: "set replicas with value set by flag", name: "set replicas with value set by flag",
args: []string{"replicas", "--values", "4", "--description", "hi there"}, args: []string{"replicas", "--values", "4", "--description", "hi there"},
out: "set 1 fields\n", out: "set 1 field(s)\n",
inputOpenAPI: ` inputOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -606,7 +606,7 @@ spec:
{ {
name: "openAPI list values set by flag success", name: "openAPI list values set by flag success",
args: []string{"list", "--values", "10", "--values", "11"}, args: []string{"list", "--values", "10", "--values", "11"},
out: "set 1 fields\n", out: "set 1 field(s)\n",
inputOpenAPI: ` inputOpenAPI: `
kind: Kptfile kind: Kptfile
openAPI: openAPI:
@@ -710,7 +710,7 @@ list in body should have at most 2 items`,
{ {
name: "nested substitution", name: "nested substitution",
args: []string{"my-image-setter", "ubuntu"}, args: []string{"my-image-setter", "ubuntu"},
out: "set 2 fields\n", out: "set 2 field(s)\n",
inputOpenAPI: ` inputOpenAPI: `
apiVersion: v1alpha1 apiVersion: v1alpha1
kind: Example kind: Example
@@ -1093,10 +1093,14 @@ func TestSetSubPackages(t *testing.T) {
name: "set-recurse-subpackages", name: "set-recurse-subpackages",
dataset: "dataset-with-setters", dataset: "dataset-with-setters",
args: []string{"namespace", "otherspace", "-R"}, args: []string{"namespace", "otherspace", "-R"},
expected: ` expected: `${baseDir}/mysql/
set 1 fields in package "${baseDir}/mysql" set 1 field(s)
setter "namespace" is not found in package "${baseDir}/mysql/nosetters"
set 1 fields in package "${baseDir}/mysql/storage" ${baseDir}/mysql/nosetters/
setter "namespace" is not found
${baseDir}/mysql/storage/
set 1 field(s)
`, `,
}, },
{ {
@@ -1104,8 +1108,8 @@ set 1 fields in package "${baseDir}/mysql/storage"
dataset: "dataset-with-setters", dataset: "dataset-with-setters",
packagePath: "mysql", packagePath: "mysql",
args: []string{"namespace", "otherspace"}, args: []string{"namespace", "otherspace"},
expected: ` expected: `${baseDir}/mysql/
set 1 fields in package "${baseDir}/mysql" set 1 field(s)
`, `,
}, },
{ {
@@ -1113,8 +1117,8 @@ set 1 fields in package "${baseDir}/mysql"
dataset: "dataset-with-setters", dataset: "dataset-with-setters",
packagePath: "mysql/storage", packagePath: "mysql/storage",
args: []string{"namespace", "otherspace"}, args: []string{"namespace", "otherspace"},
expected: ` expected: `${baseDir}/mysql/storage/
set 1 fields in package "${baseDir}/mysql/storage" set 1 field(s)
`, `,
}, },
} }

View File

@@ -76,7 +76,6 @@ func (r *CountRunner) executeCmd(w io.Writer, pkgPath string) error {
input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: openAPIFileName} input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: openAPIFileName}
fmt.Fprintf(w, "%q:\n", pkgPath)
err = kio.Pipeline{ err = kio.Pipeline{
Inputs: []kio.Reader{input}, Inputs: []kio.Reader{input},
Outputs: r.out(w), Outputs: r.out(w),
@@ -88,7 +87,7 @@ func (r *CountRunner) executeCmd(w io.Writer, pkgPath string) error {
return err return err
} else { } else {
// print error message and continue if there are multiple packages to annotate // print error message and continue if there are multiple packages to annotate
fmt.Fprintf(w, "%s in package %q\n", err.Error(), pkgPath) fmt.Fprintf(w, "%s\n", err.Error())
} }
} }
return nil return nil

View File

@@ -86,10 +86,10 @@ func TestCountSubPackages(t *testing.T) {
{ {
name: "count-recurse-subpackages", name: "count-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
expected: ` expected: `${baseDir}/mysql/
"${baseDir}/mysql":
Deployment: 1 Deployment: 1
"${baseDir}/mysql/storage":
${baseDir}/mysql/storage/
Deployment: 1 Deployment: 1
`, `,
}, },
@@ -98,16 +98,18 @@ Deployment: 1
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
args: []string{"-R=false"}, args: []string{"-R=false"},
packagePath: "mysql", packagePath: "mysql",
expected: `"${baseDir}/mysql": expected: `${baseDir}/mysql/
Deployment: 1`, Deployment: 1
`,
}, },
{ {
name: "count-nested-pkg-no-recurse-subpackages", name: "count-nested-pkg-no-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
packagePath: "mysql/storage", packagePath: "mysql/storage",
args: []string{"-R=false"}, args: []string{"-R=false"},
expected: `"${baseDir}/mysql/storage": expected: `${baseDir}/mysql/storage/
Deployment: 1`, Deployment: 1
`,
}, },
} }
for i := range tests { for i := range tests {
@@ -139,7 +141,7 @@ Deployment: 1`,
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1) expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
expectedNormalized := strings.Replace(expected, "\\", "/", -1) expectedNormalized := strings.Replace(expected, "\\", "/", -1)
if !assert.Equal(t, strings.TrimSpace(expectedNormalized), strings.TrimSpace(actualNormalized)) { if !assert.Equal(t, expectedNormalized, actualNormalized) {
t.FailNow() t.FailNow()
} }
}) })

View File

@@ -114,10 +114,10 @@ func (r *FmtRunner) executeCmd(w io.Writer, pkgPath string) error {
return err return err
} else { } else {
// print error message and continue if RecurseSubPackages is true // print error message and continue if RecurseSubPackages is true
fmt.Fprintf(w, "%s in package %q\n", err.Error(), pkgPath) fmt.Fprintf(w, "%s\n", err.Error())
} }
} else { } else {
fmt.Fprintf(w, "formatted resource files in package %q\n", pkgPath) fmt.Fprint(w, "formatted resource files in the package\n")
} }
return nil return nil
} }

View File

@@ -179,23 +179,31 @@ func TestFmtSubPackages(t *testing.T) {
name: "fmt-recurse-subpackages", name: "fmt-recurse-subpackages",
dataset: "dataset-with-setters", dataset: "dataset-with-setters",
args: []string{"-R"}, args: []string{"-R"},
expected: ` expected: `${baseDir}/mysql/
formatted resource files in package "${baseDir}/mysql" formatted resource files in the package
formatted resource files in package "${baseDir}/mysql/nosetters"
formatted resource files in package "${baseDir}/mysql/storage" ${baseDir}/mysql/nosetters/
formatted resource files in the package
${baseDir}/mysql/storage/
formatted resource files in the package
`, `,
}, },
{ {
name: "fmt-top-level-pkg-no-recurse-subpackages", name: "fmt-top-level-pkg-no-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
packagePath: "mysql", packagePath: "mysql",
expected: `formatted resource files in package "${baseDir}/mysql"`, expected: `${baseDir}/mysql/
formatted resource files in the package
`,
}, },
{ {
name: "fmt-nested-pkg-no-recurse-subpackages", name: "fmt-nested-pkg-no-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
packagePath: "mysql/storage", packagePath: "mysql/storage",
expected: `formatted resource files in package "${baseDir}/mysql/storage"`, expected: `${baseDir}/mysql/storage/
formatted resource files in the package
`,
}, },
} }
for i := range tests { for i := range tests {

View File

@@ -137,7 +137,6 @@ func (r *GrepRunner) executeCmd(w io.Writer, pkgPath string) error {
input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: openAPIFileName} input := kio.LocalPackageReader{PackagePath: pkgPath, PackageFileName: openAPIFileName}
fmt.Fprintf(w, "%q:\n", pkgPath)
err = kio.Pipeline{ err = kio.Pipeline{
Inputs: []kio.Reader{input}, Inputs: []kio.Reader{input},
Filters: []kio.Filter{r.GrepFilter}, Filters: []kio.Filter{r.GrepFilter},
@@ -153,7 +152,7 @@ func (r *GrepRunner) executeCmd(w io.Writer, pkgPath string) error {
return err return err
} else { } else {
// print error message and continue if there are multiple packages to annotate // print error message and continue if there are multiple packages to annotate
fmt.Fprintf(w, "%s in package %q\n", err.Error(), pkgPath) fmt.Fprintf(w, "%s\n", err.Error())
} }
} }
return nil return nil

View File

@@ -283,8 +283,7 @@ func TestGrepSubPackages(t *testing.T) {
name: "grep-recurse-subpackages", name: "grep-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
args: []string{"kind=Deployment"}, args: []string{"kind=Deployment"},
expected: ` expected: `${baseDir}/mysql/
"${baseDir}/mysql":
# Copyright 2019 The Kubernetes Authors. # Copyright 2019 The Kubernetes Authors.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
@@ -303,7 +302,8 @@ spec:
containers: containers:
- name: mysql - name: mysql
image: mysql:1.7.9 image: mysql:1.7.9
"${baseDir}/mysql/storage":
${baseDir}/mysql/storage/
# Copyright 2019 The Kubernetes Authors. # Copyright 2019 The Kubernetes Authors.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
@@ -329,8 +329,7 @@ spec:
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
args: []string{"kind=Deployment", "-R=false"}, args: []string{"kind=Deployment", "-R=false"},
packagePath: "mysql", packagePath: "mysql",
expected: ` expected: `${baseDir}/mysql/
"${baseDir}/mysql":
# Copyright 2019 The Kubernetes Authors. # Copyright 2019 The Kubernetes Authors.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
@@ -348,15 +347,15 @@ spec:
spec: spec:
containers: containers:
- name: mysql - name: mysql
image: mysql:1.7.9`, image: mysql:1.7.9
`,
}, },
{ {
name: "grep-nested-pkg-no-recurse-subpackages", name: "grep-nested-pkg-no-recurse-subpackages",
dataset: "dataset-without-setters", dataset: "dataset-without-setters",
packagePath: "mysql/storage", packagePath: "mysql/storage",
args: []string{"kind=Deployment", "-R=false"}, args: []string{"kind=Deployment", "-R=false"},
expected: ` expected: `${baseDir}/mysql/storage/
"${baseDir}/mysql/storage":
# Copyright 2019 The Kubernetes Authors. # Copyright 2019 The Kubernetes Authors.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
@@ -374,7 +373,8 @@ spec:
spec: spec:
containers: containers:
- name: storage - name: storage
image: storage:1.7.7`, image: storage:1.7.7
`,
}, },
} }
for i := range tests { for i := range tests {
@@ -403,7 +403,7 @@ spec:
expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1) expected := strings.Replace(test.expected, "${baseDir}", baseDir, -1)
expectedNormalized := strings.Replace(expected, "\\", "/", -1) expectedNormalized := strings.Replace(expected, "\\", "/", -1)
if !assert.Equal(t, strings.TrimSpace(expectedNormalized), strings.TrimSpace(actualNormalized)) { if !assert.Equal(t, expectedNormalized, actualNormalized) {
t.FailNow() t.FailNow()
} }
}) })

View File

@@ -31,6 +31,7 @@ type executeCmdOnPkgs struct {
needOpenAPI bool needOpenAPI bool
cmdRunner cmdRunner cmdRunner cmdRunner
writer io.Writer writer io.Writer
skipPkgPathPrint bool
} }
// executeCmdOnPkgs takes the function definition for a command to be executed on single package, applies that definition // executeCmdOnPkgs takes the function definition for a command to be executed on single package, applies that definition
@@ -57,7 +58,8 @@ func (e executeCmdOnPkgs) execute() error {
pkgsPaths = []string{e.rootPkgPath} pkgsPaths = []string{e.rootPkgPath}
} }
for _, pkgPath := range pkgsPaths { for i := range pkgsPaths {
pkgPath := pkgsPaths[i]
// Add schema present in openAPI file for current package // Add schema present in openAPI file for current package
if e.needOpenAPI { if e.needOpenAPI {
if err := openapi.AddSchemaFromFile(filepath.Join(pkgPath, openAPIFileName)); err != nil { if err := openapi.AddSchemaFromFile(filepath.Join(pkgPath, openAPIFileName)); err != nil {
@@ -65,11 +67,19 @@ func (e executeCmdOnPkgs) execute() error {
} }
} }
if !e.skipPkgPathPrint {
fmt.Fprintf(e.writer, "%s/\n", pkgPath)
}
err := e.cmdRunner.executeCmd(e.writer, pkgPath) err := e.cmdRunner.executeCmd(e.writer, pkgPath)
if err != nil { if err != nil {
return err return err
} }
if i != len(pkgsPaths)-1 {
fmt.Fprint(e.writer, "\n")
}
// Delete schema present in openAPI file for current package // Delete schema present in openAPI file for current package
if e.needOpenAPI { if e.needOpenAPI {
if err := openapi.DeleteSchemaInFile(filepath.Join(pkgPath, openAPIFileName)); err != nil { if err := openapi.DeleteSchemaInFile(filepath.Join(pkgPath, openAPIFileName)); err != nil {

View File

@@ -2,7 +2,6 @@ package commands
import ( import (
"bytes" "bytes"
"fmt"
"io" "io"
"io/ioutil" "io/ioutil"
"os" "os"
@@ -35,23 +34,27 @@ func TestExecuteCmdOnPkgs(t *testing.T) {
recurse: true, recurse: true,
needOpenAPI: false, needOpenAPI: false,
pkgPath: "subpkg1/subdir1", pkgPath: "subpkg1/subdir1",
expectedOut: `${baseDir}/subpkg1/subdir1`, expectedOut: `${baseDir}/subpkg1/subdir1/
`,
}, },
{ {
name: "executeCmd_returns_error", name: "executeCmd_returns_error",
recurse: true, recurse: true,
needOpenAPI: false, needOpenAPI: false,
pkgPath: "subpkg4", pkgPath: "subpkg4",
errMsg: `this command returns an error if package has error.txt file`, expectedOut: `${baseDir}/subpkg4/
`,
errMsg: `this command returns an error if package has error.txt file`,
}, },
{ {
name: "executeCmd_prints_pkgpaths", name: "executeCmd_prints_pkgpaths",
recurse: true, recurse: true,
needOpenAPI: false, needOpenAPI: false,
pkgPath: "subpkg2", pkgPath: "subpkg2",
expectedOut: ` expectedOut: `${baseDir}/subpkg2/
${baseDir}/subpkg2
${baseDir}/subpkg2/subpkg3`, ${baseDir}/subpkg2/subpkg3/
`,
}, },
} }
@@ -96,11 +99,11 @@ ${baseDir}/subpkg2/subpkg3`,
strings.Replace(actual.String(), "\\", "/", -1), strings.Replace(actual.String(), "\\", "/", -1),
"//", "/", -1) "//", "/", -1)
expected := strings.Replace(test.expectedOut, "${baseDir}", dir, -1) expected := strings.Replace(test.expectedOut, "${baseDir}", dir+"/", -1)
expectedNormalized := strings.Replace( expectedNormalized := strings.Replace(
strings.Replace(expected, "\\", "/", -1), strings.Replace(expected, "\\", "/", -1),
"//", "/", -1) "//", "/", -1)
if !assert.Equal(t, strings.TrimSpace(expectedNormalized), strings.TrimSpace(actualNormalized)) { if !assert.Equal(t, expectedNormalized, actualNormalized) {
t.FailNow() t.FailNow()
} }
}) })
@@ -174,6 +177,5 @@ func (r *TestRunner) executeCmd(w io.Writer, pkgPath string) error {
return errors.Errorf("this command returns an error if package has error.txt file") return errors.Errorf("this command returns an error if package has error.txt file")
} }
} }
fmt.Fprintf(w, "%s\n", pkgPath)
return nil return nil
} }

View File

@@ -87,7 +87,7 @@ func (c SetterCreator) Create() error {
}.Execute() }.Execute()
if a.Count == 0 { if a.Count == 0 {
fmt.Printf("setter %q doesn't match any field in resource configs, "+ fmt.Printf("setter %q doesn't match any field in resource configs, "+
"but creating setter definition in package %q\n", c.Name, c.ResourcesPath) "but creating setter definition\n", c.Name)
} }
if err != nil { if err != nil {
return err return err

View File

@@ -147,7 +147,7 @@ func (c SubstitutionCreator) Create() error {
if a.Count == 0 { if a.Count == 0 {
fmt.Printf("substitution %s doesn't match any field value in resource configs, "+ fmt.Printf("substitution %s doesn't match any field value in resource configs, "+
"but creating substitution definition in package %q\n", c.Name, c.ResourcesPath) "but creating substitution definition\n", c.Name)
} }
return err return err
} }