mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-12 01:14:22 +00:00
Use require for Error and NoError
Assert keeps going after failure, but require immediately fails the tests, making it easier to find the output related to the test failure, rather than having to comb through a bunch of subsequent assertion failures. For equality tests, we may or may not want to continue, but for error checks we almost always want to immediately fail the test. Exceptions can be changed as-needed.
This commit is contained in:
@@ -12,6 +12,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"sigs.k8s.io/kustomize/kyaml/kio"
|
||||
. "sigs.k8s.io/kustomize/kyaml/kio/filters"
|
||||
"sigs.k8s.io/kustomize/kyaml/kio/filters/testyaml"
|
||||
@@ -81,7 +82,7 @@ spec:
|
||||
}},
|
||||
Outputs: []kio.Writer{kio.ByteWriter{Writer: buff}},
|
||||
}.Execute()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, expected, buff.String())
|
||||
}
|
||||
|
||||
@@ -146,7 +147,7 @@ spec:
|
||||
Filters: []kio.Filter{FormatFilter{}},
|
||||
Outputs: []kio.Writer{kio.ByteWriter{Writer: buff}},
|
||||
}.Execute()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, expected, buff.String())
|
||||
}
|
||||
|
||||
@@ -200,7 +201,7 @@ spec:
|
||||
}}},
|
||||
Outputs: []kio.Writer{kio.ByteWriter{Writer: buff}},
|
||||
}.Execute()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, expected, buff.String())
|
||||
|
||||
y = `
|
||||
@@ -268,7 +269,7 @@ spec:
|
||||
}}},
|
||||
Outputs: []kio.Writer{kio.ByteWriter{Writer: buff}},
|
||||
}.Execute()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, expected, buff.String())
|
||||
}
|
||||
|
||||
@@ -297,7 +298,7 @@ spec:
|
||||
`
|
||||
|
||||
s, err := FormatInput(strings.NewReader(y))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, expected, s.String())
|
||||
}
|
||||
|
||||
@@ -357,7 +358,7 @@ data:
|
||||
`
|
||||
|
||||
s, err := FormatInput(strings.NewReader(y))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, expected, s.String())
|
||||
}
|
||||
|
||||
@@ -423,7 +424,7 @@ spec:
|
||||
- containerPort: 80
|
||||
`
|
||||
s, err := FormatInput(strings.NewReader(y))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, expected, s.String())
|
||||
}
|
||||
|
||||
@@ -455,7 +456,7 @@ spec:
|
||||
targetPort: 9376
|
||||
`
|
||||
s, err := FormatInput(strings.NewReader(y))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, expected, s.String())
|
||||
}
|
||||
|
||||
@@ -517,7 +518,7 @@ webhooks:
|
||||
timeoutSeconds: 1
|
||||
`
|
||||
s, err := FormatInput(strings.NewReader(y))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, expected, s.String())
|
||||
}
|
||||
|
||||
@@ -564,7 +565,7 @@ other:
|
||||
b: a1
|
||||
`
|
||||
s, err := FormatInput(strings.NewReader(y))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, expected, s.String())
|
||||
}
|
||||
|
||||
@@ -572,34 +573,33 @@ other:
|
||||
func TestFormatInput_resources(t *testing.T) {
|
||||
input := &bytes.Buffer{}
|
||||
_, err := io.Copy(input, bytes.NewReader(testyaml.UnformattedYaml1))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
_, err = io.Copy(input, strings.NewReader("---\n"))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
_, err = io.Copy(input, bytes.NewReader(testyaml.UnformattedYaml2))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
_, err = io.Copy(input, strings.NewReader("---\n"))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
_, err = io.Copy(input, bytes.NewReader(testyaml.UnformattedYaml3))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
expectedOutput := &bytes.Buffer{}
|
||||
_, err = io.Copy(expectedOutput, bytes.NewReader(testyaml.FormattedYaml1))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
_, err = io.Copy(expectedOutput, strings.NewReader("---\n"))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
_, err = io.Copy(expectedOutput, bytes.NewReader(testyaml.FormattedYaml2))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
_, err = io.Copy(expectedOutput, strings.NewReader("---\n"))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
_, err = io.Copy(expectedOutput, bytes.NewReader(testyaml.FormattedYaml3))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
s, err := FormatInput(input)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, expectedOutput.String(), s.String())
|
||||
}
|
||||
|
||||
//
|
||||
func TestFormatInput_failMissingKind(t *testing.T) {
|
||||
y := `
|
||||
spec:
|
||||
@@ -621,7 +621,7 @@ apiVersion: example.com/v1beta1
|
||||
`
|
||||
|
||||
b, err := FormatInput(strings.NewReader(y))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, strings.TrimLeft(y, "\n"), b.String())
|
||||
}
|
||||
|
||||
@@ -646,7 +646,7 @@ kind: MyKind
|
||||
`
|
||||
|
||||
b, err := FormatInput(strings.NewReader(y))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, strings.TrimLeft(y, "\n"), b.String())
|
||||
}
|
||||
|
||||
@@ -706,19 +706,19 @@ func TestFormatFileOrDirectory_yamlExtFile(t *testing.T) {
|
||||
func TestFormatFileOrDirectory_multipleYamlEntries(t *testing.T) {
|
||||
// write the unformatted file
|
||||
f, err := os.CreateTemp("", "yamlfmt*.yaml")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
defer os.Remove(f.Name())
|
||||
err = os.WriteFile(f.Name(),
|
||||
[]byte(string(testyaml.UnformattedYaml1)+"---\n"+string(testyaml.UnformattedYaml2)), 0600)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// format the file
|
||||
err = FormatFileOrDirectory(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// check the result is formatted
|
||||
b, err := os.ReadFile(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, string(testyaml.FormattedYaml1)+"---\n"+string(testyaml.FormattedYaml2), string(b))
|
||||
}
|
||||
|
||||
@@ -727,18 +727,18 @@ func TestFormatFileOrDirectory_multipleYamlEntries(t *testing.T) {
|
||||
func TestFormatFileOrDirectory_ymlExtFile(t *testing.T) {
|
||||
// write the unformatted file
|
||||
f, err := os.CreateTemp("", "yamlfmt*.yml")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
defer os.Remove(f.Name())
|
||||
err = os.WriteFile(f.Name(), testyaml.UnformattedYaml1, 0600)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// format the file
|
||||
err = FormatFileOrDirectory(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// check the result is formatted
|
||||
b, err := os.ReadFile(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, string(testyaml.FormattedYaml1), string(b))
|
||||
}
|
||||
|
||||
@@ -747,18 +747,18 @@ func TestFormatFileOrDirectory_ymlExtFile(t *testing.T) {
|
||||
func TestFormatFileOrDirectory_YamlExtFileWithJson(t *testing.T) {
|
||||
// write the unformatted JSON file contents
|
||||
f, err := os.CreateTemp("", "yamlfmt*.yaml")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
defer os.Remove(f.Name())
|
||||
err = os.WriteFile(f.Name(), testyaml.UnformattedJSON1, 0600)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// format the file
|
||||
err = FormatFileOrDirectory(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// check the result is formatted as yaml
|
||||
b, err := os.ReadFile(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, string(testyaml.FormattedFlowYAML1), string(b))
|
||||
}
|
||||
|
||||
@@ -767,18 +767,18 @@ func TestFormatFileOrDirectory_YamlExtFileWithJson(t *testing.T) {
|
||||
func TestFormatFileOrDirectory_JsonExtFileWithNotModified(t *testing.T) {
|
||||
// write the unformatted JSON file contents
|
||||
f, err := os.CreateTemp("", "yamlfmt*.json")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
defer os.Remove(f.Name())
|
||||
err = os.WriteFile(f.Name(), testyaml.UnformattedJSON1, 0600)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// format the file
|
||||
err = FormatFileOrDirectory(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// check the result is formatted as yaml
|
||||
b, err := os.ReadFile(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, string(testyaml.UnformattedJSON1), string(b))
|
||||
}
|
||||
|
||||
@@ -787,7 +787,7 @@ func TestFormatFileOrDirectory_JsonExtFileWithNotModified(t *testing.T) {
|
||||
func TestFormatFileOrDirectory_partialKubernetesYamlFile(t *testing.T) {
|
||||
// write the unformatted file
|
||||
f, err := os.CreateTemp("", "yamlfmt*.yaml")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
defer os.Remove(f.Name())
|
||||
err = os.WriteFile(f.Name(), []byte(string(testyaml.UnformattedYaml1)+`---
|
||||
status:
|
||||
@@ -798,15 +798,15 @@ status:
|
||||
spec: a
|
||||
---
|
||||
`+string(testyaml.UnformattedYaml2)), 0600)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// format the file
|
||||
err = FormatFileOrDirectory(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// check the result is NOT formatted
|
||||
b, err := os.ReadFile(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, string(testyaml.FormattedYaml1)+`---
|
||||
status:
|
||||
conditions:
|
||||
@@ -823,7 +823,7 @@ spec: a
|
||||
func TestFormatFileOrDirectory_skipNonKubernetesYamlFile(t *testing.T) {
|
||||
// write the unformatted JSON file contents
|
||||
f, err := os.CreateTemp("", "yamlfmt*.yaml")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
defer os.Remove(f.Name())
|
||||
err = os.WriteFile(f.Name(), []byte(`
|
||||
status:
|
||||
@@ -833,15 +833,15 @@ status:
|
||||
- 2
|
||||
spec: a
|
||||
`), 0600)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// format the file
|
||||
err = FormatFileOrDirectory(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
// check the result is formatted as yaml
|
||||
b, err := os.ReadFile(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, `status:
|
||||
conditions:
|
||||
- 3
|
||||
@@ -854,16 +854,16 @@ spec: a
|
||||
// TestFormatFileOrDirectory_jsonFile should not fmt the file even though it contains yaml.
|
||||
func TestFormatFileOrDirectory_skipJsonExtFile(t *testing.T) {
|
||||
f, err := os.CreateTemp("", "yamlfmt*.json")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
defer os.Remove(f.Name())
|
||||
err = os.WriteFile(f.Name(), testyaml.UnformattedYaml1, 0600)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = FormatFileOrDirectory(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
b, err := os.ReadFile(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, string(testyaml.UnformattedYaml1), string(b))
|
||||
}
|
||||
@@ -874,59 +874,59 @@ func TestFormatFileOrDirectory_directory(t *testing.T) {
|
||||
d := t.TempDir()
|
||||
|
||||
err := os.Mkdir(filepath.Join(d, "config"), 0700)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = os.WriteFile(filepath.Join(d, "c1.yaml"), testyaml.UnformattedYaml1, 0600)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = os.WriteFile(filepath.Join(d, "config", "c2.yaml"), testyaml.UnformattedYaml2, 0600)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = os.WriteFile(filepath.Join(d, "README.md"), []byte(`# Markdown`), 0600)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = FormatFileOrDirectory(d)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
b, err := os.ReadFile(filepath.Join(d, "c1.yaml"))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, string(testyaml.FormattedYaml1), string(b))
|
||||
|
||||
b, err = os.ReadFile(filepath.Join(d, "config", "c2.yaml"))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, string(testyaml.FormattedYaml2), string(b))
|
||||
|
||||
b, err = os.ReadFile(filepath.Join(d, "README.md"))
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, `# Markdown`, string(b))
|
||||
|
||||
// verify no additional files were created
|
||||
files := []string{
|
||||
".", "c1.yaml", "README.md", "config", filepath.Join("config", "c2.yaml")}
|
||||
err = filepath.Walk(d, func(path string, info os.FileInfo, err error) error {
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
path, err = filepath.Rel(d, path)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Contains(t, files, path)
|
||||
return nil
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
// TestFormatFileOrDirectory_trimWhiteSpace verifies that trailling and leading whitespace is
|
||||
// trimmed
|
||||
func TestFormatFileOrDirectory_trimWhiteSpace(t *testing.T) {
|
||||
f, err := os.CreateTemp("", "yamlfmt*.yaml")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
defer os.Remove(f.Name())
|
||||
err = os.WriteFile(f.Name(), []byte("\n\n"+string(testyaml.UnformattedYaml1)+"\n\n"), 0600)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = FormatFileOrDirectory(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
b, err := os.ReadFile(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, string(testyaml.FormattedYaml1), string(b))
|
||||
}
|
||||
@@ -1024,21 +1024,21 @@ metadata:
|
||||
test := testCases[i]
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
f, err := os.CreateTemp("", "yamlfmt*.yaml")
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
defer os.Remove(f.Name())
|
||||
|
||||
err = os.WriteFile(f.Name(), test.input, 0600)
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
err = FormatFileOrDirectory(f.Name())
|
||||
if test.expectError {
|
||||
assert.Error(t, err)
|
||||
require.Error(t, err)
|
||||
return
|
||||
}
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
b, err := os.ReadFile(f.Name())
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
|
||||
assert.Equal(t, strings.TrimSpace(string(test.expectedOutput)),
|
||||
strings.TrimSpace(string(b)))
|
||||
@@ -1091,6 +1091,6 @@ spec:
|
||||
}},
|
||||
Outputs: []kio.Writer{kio.ByteWriter{Writer: buff}},
|
||||
}.Execute()
|
||||
assert.NoError(t, err)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, expected, buff.String())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user