Merge pull request #2505 from monopole/nondeterministic

Fix nondeterminstic failure
This commit is contained in:
Jeff Regan
2020-05-20 08:45:56 -07:00
committed by GitHub

View File

@@ -5,6 +5,7 @@ package target_test
import ( import (
"encoding/base64" "encoding/base64"
"reflect"
"testing" "testing"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
@@ -13,6 +14,7 @@ import (
"sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resmap"
"sigs.k8s.io/kustomize/api/resource" "sigs.k8s.io/kustomize/api/resource"
kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest" kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
"sigs.k8s.io/kustomize/api/types"
) )
// KustTarget is primarily tested in the krusty package with // KustTarget is primarily tested in the krusty package with
@@ -20,24 +22,42 @@ import (
func TestLoad(t *testing.T) { func TestLoad(t *testing.T) {
th := kusttest_test.MakeHarness(t) th := kusttest_test.MakeHarness(t)
expectedTypeMeta := types.TypeMeta{
APIVersion: "kustomize.config.k8s.io/v1beta1",
Kind: "Kustomization",
}
testCases := map[string]struct { testCases := map[string]struct {
errContains string errContains string
content string content string
k types.Kustomization
}{ }{
"empty": { "empty": {
errContains: "unable to find one of 'kustomization.yaml', ",
// no content // no content
k: types.Kustomization{
TypeMeta: expectedTypeMeta,
},
}, },
"nonsenseLatin": { "nonsenseLatin": {
errContains: "error converting YAML to JSON", errContains: "error converting YAML to JSON",
content: ` content: `
Lorem ipsum dolor sit amet, consectetur Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut exercitation ullamco laboris nisi ut
aliquip ex ea commodo consequat. aliquip ex ea commodo consequat.
`,
},
"simple": {
content: `
commonLabels:
app: nginx
`, `,
k: types.Kustomization{
TypeMeta: expectedTypeMeta,
CommonLabels: map[string]string{"app": "nginx"},
},
}, },
"commented": { "commented": {
content: ` content: `
@@ -46,34 +66,21 @@ aliquip ex ea commodo consequat.
# yada yada yada. # yada yada yada.
commonLabels: commonLabels:
app: nginx app: nginx
`,
},
"implicitHeader": {
content: `
commonLabels:
app: nginx
`,
},
"explicitHeader": {
content: `
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
commonLabels:
app: nginx
`, `,
k: types.Kustomization{
TypeMeta: expectedTypeMeta,
CommonLabels: map[string]string{"app": "nginx"},
},
}, },
} }
kt := makeKustTargetWithRf( kt := makeKustTargetWithRf(
t, th.GetFSys(), "/", t, th.GetFSys(), "/",
resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl())) resource.NewFactory(kunstruct.NewKunstructuredFactoryImpl()))
for tn, tc := range testCases { for tn, tc := range testCases {
t.Run(tn, func(t *testing.T) { t.Run(tn, func(t *testing.T) {
if tc.content != "" { th.WriteK("/", tc.content)
th.WriteK("/", tc.content)
}
err := kt.Load() err := kt.Load()
if tc.errContains != "" { if tc.errContains != "" {
require.NotNilf(t, err, "expected error containing: `%s`", tc.errContains) require.NotNilf(t, err, "expected error containing: `%s`", tc.errContains)
@@ -82,11 +89,8 @@ commonLabels:
require.Nilf(t, err, "got error: %v", err) require.Nilf(t, err, "got error: %v", err)
k := kt.Kustomization() k := kt.Kustomization()
require.Condition(t, func() bool { require.Condition(t, func() bool {
return len(k.CommonLabels) == 1 return reflect.DeepEqual(tc.k, k)
}, "expecting a labels entry") }, "expected %v, got %v", tc.k, k)
require.Condition(t, func() bool {
return k.CommonLabels["app"] == "nginx"
}, "expecting app:nginx")
} }
}) })
} }