24133 fix: --no-headers works with custom columns now

This commit is contained in:
Sylwester Brzeczkowski
2016-06-01 14:50:29 +02:00
committed by Sylwester Brzeczkowski
parent acda24ae25
commit 19434e1b58
7 changed files with 46 additions and 24 deletions

View File

@@ -19,6 +19,7 @@ package kubectl
import (
"bytes"
"reflect"
"strings"
"testing"
"k8s.io/kubernetes/pkg/api"
@@ -67,6 +68,7 @@ func TestNewColumnPrinterFromSpec(t *testing.T) {
expectedColumns []Column
expectErr bool
name string
noHeaders bool
}{
{
spec: "",
@@ -102,9 +104,14 @@ func TestNewColumnPrinterFromSpec(t *testing.T) {
},
},
},
{
spec: "API_VERSION:apiVersion",
name: "no-headers",
noHeaders: true,
},
}
for _, test := range tests {
printer, err := NewCustomColumnsPrinterFromSpec(test.spec, api.Codecs.UniversalDecoder())
printer, err := NewCustomColumnsPrinterFromSpec(test.spec, api.Codecs.UniversalDecoder(), test.noHeaders)
if test.expectErr {
if err == nil {
t.Errorf("[%s] unexpected non-error", test.name)
@@ -115,8 +122,19 @@ func TestNewColumnPrinterFromSpec(t *testing.T) {
t.Errorf("[%s] unexpected error: %v", test.name, err)
continue
}
if test.noHeaders {
buffer := &bytes.Buffer{}
if !reflect.DeepEqual(test.expectedColumns, printer.Columns) {
printer.PrintObj(&api.Pod{}, buffer)
if err != nil {
t.Fatalf("An error occurred printing Pod: %#v", err)
}
if contains(strings.Fields(buffer.String()), "API_VERSION") {
t.Errorf("unexpected header API_VERSION")
}
} else if !reflect.DeepEqual(test.expectedColumns, printer.Columns) {
t.Errorf("[%s]\nexpected:\n%v\nsaw:\n%v\n", test.name, test.expectedColumns, printer.Columns)
}