diff --git a/pkg/printers/internalversion/additional_printers_test.go b/pkg/printers/internalversion/additional_printers_test.go index a5c98f8d55a..6c1002b80ee 100644 --- a/pkg/printers/internalversion/additional_printers_test.go +++ b/pkg/printers/internalversion/additional_printers_test.go @@ -263,22 +263,10 @@ func TestPrinters(t *testing.T) { om := func(name string) metav1.ObjectMeta { return metav1.ObjectMeta{Name: name} } var ( - err error - templatePrinter printers.ResourcePrinter - templatePrinter2 printers.ResourcePrinter - jsonpathPrinter printers.ResourcePrinter + err error + jsonpathPrinter printers.ResourcePrinter ) - templatePrinter, err = genericprinters.NewGoTemplatePrinter([]byte("{{.name}}")) - if err != nil { - t.Fatal(err) - } - - templatePrinter2, err = genericprinters.NewGoTemplatePrinter([]byte("{{len .items}}")) - if err != nil { - t.Fatal(err) - } - jsonpathPrinter, err = genericprinters.NewJSONPathPrinter("{.metadata.name}") if err != nil { t.Fatal(err) @@ -286,11 +274,9 @@ func TestPrinters(t *testing.T) { genericPrinters := map[string]printers.ResourcePrinter{ // TODO(juanvallejo): move "generic printer" tests to pkg/kubectl/genericclioptions/printers - "json": genericprinters.NewTypeSetter(legacyscheme.Scheme).ToPrinter(&genericprinters.JSONPrinter{}), - "yaml": genericprinters.NewTypeSetter(legacyscheme.Scheme).ToPrinter(&genericprinters.YAMLPrinter{}), - "template": templatePrinter, - "template2": templatePrinter2, - "jsonpath": jsonpathPrinter, + "json": genericprinters.NewTypeSetter(legacyscheme.Scheme).ToPrinter(&genericprinters.JSONPrinter{}), + "yaml": genericprinters.NewTypeSetter(legacyscheme.Scheme).ToPrinter(&genericprinters.YAMLPrinter{}), + "jsonpath": jsonpathPrinter, } objects := map[string]runtime.Object{ "pod": &v1.Pod{ObjectMeta: om("pod")}, @@ -304,8 +290,7 @@ func TestPrinters(t *testing.T) { } // map of printer name to set of objects it should fail on. expectedErrors := map[string]sets.String{ - "template2": sets.NewString("pod", "emptyPodList", "endpoints"), - "jsonpath": sets.NewString("emptyPodList", "nonEmptyPodList", "endpoints"), + "jsonpath": sets.NewString("emptyPodList", "nonEmptyPodList", "endpoints"), } for pName, p := range genericPrinters { diff --git a/staging/src/k8s.io/cli-runtime/pkg/printers/template_test.go b/staging/src/k8s.io/cli-runtime/pkg/printers/template_test.go index 137a85e86f6..72184d4b7dc 100644 --- a/staging/src/k8s.io/cli-runtime/pkg/printers/template_test.go +++ b/staging/src/k8s.io/cli-runtime/pkg/printers/template_test.go @@ -242,3 +242,30 @@ func TestTemplatePanic(t *testing.T) { t.Errorf("no debugging info was printed") } } + +func TestTemplateErrors(t *testing.T) { + + templatePrinter, err := NewGoTemplatePrinter([]byte("{{len .items}}")) + if err != nil { + t.Fatal(err) + } + + // Template printer should fail on these resources. + om := func(name string) metav1.ObjectMeta { return metav1.ObjectMeta{Name: name} } + objects := []runtime.Object{ + &v1.Pod{ObjectMeta: om("pod")}, + &v1.PodList{}, + &v1.Endpoints{ + Subsets: []v1.EndpointSubset{{ + Addresses: []v1.EndpointAddress{{IP: "127.0.0.1"}, {IP: "localhost"}}, + Ports: []v1.EndpointPort{{Port: 8080}}, + }}}, + } + + for _, obj := range objects { + b := &bytes.Buffer{} + if err := templatePrinter.PrintObj(obj, b); err == nil { + t.Errorf("Expected template printer error; received none") + } + } +}