...
1
16
17 package testing
18
19 import (
20 "fmt"
21 "path/filepath"
22 "testing"
23
24 "k8s.io/apimachinery/pkg/runtime"
25 "k8s.io/apimachinery/pkg/runtime/serializer"
26 )
27
28
29 func DefaultingTest(t *testing.T, scheme *runtime.Scheme, codecs serializer.CodecFactory) {
30 cases := GetDefaultingTestCases(t, scheme, codecs)
31 RunTestsOnYAMLData(t, cases)
32 }
33
34
35 func GetDefaultingTestCases(t *testing.T, scheme *runtime.Scheme, codecs serializer.CodecFactory) []TestCase {
36 cases := []TestCase{}
37 for gvk := range scheme.AllKnownTypes() {
38 if gvk.Version == runtime.APIVersionInternal {
39 continue
40 }
41 beforeDir := fmt.Sprintf("testdata/%s/before", gvk.Kind)
42 afterDir := fmt.Sprintf("testdata/%s/after", gvk.Kind)
43 filename := fmt.Sprintf("%s.yaml", gvk.Version)
44
45 codec, err := getCodecForGV(codecs, gvk.GroupVersion())
46 if err != nil {
47 t.Fatal(err)
48 }
49
50 cases = append(cases, TestCase{
51 name: fmt.Sprintf("%s default_%s", gvk.Kind, gvk.Version),
52 in: filepath.Join(beforeDir, filename),
53 out: filepath.Join(afterDir, filename),
54 codec: codec,
55 })
56 }
57 return cases
58 }
59
View as plain text