Move template printer error test to correct location template_test.go

This commit is contained in:
Sean Sullivan 2019-10-16 16:42:47 -07:00
parent 57259fa419
commit 6660937139
2 changed files with 33 additions and 21 deletions

View File

@ -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 {

View File

@ -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")
}
}
}