mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-05 18:24:07 +00:00
Fix tests using internal types for generic printing
This commit is contained in:
parent
cc7a44f545
commit
12806be2bf
@ -1252,11 +1252,13 @@ func (f *factory) PrintObject(cmd *cobra.Command, mapper meta.RESTMapper, obj ru
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (f *factory) PrinterForMapping(cmd *cobra.Command, mapping *meta.RESTMapping, withNamespace bool) (kubectl.ResourcePrinter, error) {
|
func (f *factory) PrinterForMapping(cmd *cobra.Command, mapping *meta.RESTMapping, withNamespace bool) (kubectl.ResourcePrinter, error) {
|
||||||
printer, ok, err := PrinterForCommand(cmd)
|
printer, generic, err := PrinterForCommand(cmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if ok {
|
|
||||||
|
// Make sure we output versioned data for generic printers
|
||||||
|
if generic {
|
||||||
clientConfig, err := f.ClientConfig()
|
clientConfig, err := f.ClientConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -118,24 +118,28 @@ func TestPrinter(t *testing.T) {
|
|||||||
Format string
|
Format string
|
||||||
FormatArgument string
|
FormatArgument string
|
||||||
Input runtime.Object
|
Input runtime.Object
|
||||||
|
OutputVersions []schema.GroupVersion
|
||||||
Expect string
|
Expect string
|
||||||
}{
|
}{
|
||||||
{"test json", "json", "", simpleTest, "{\n \"Data\": \"foo\"\n}\n"},
|
{"test json", "json", "", simpleTest, nil, "{\n \"Data\": \"foo\"\n}\n"},
|
||||||
{"test yaml", "yaml", "", simpleTest, "Data: foo\n"},
|
{"test yaml", "yaml", "", simpleTest, nil, "Data: foo\n"},
|
||||||
{"test template", "template", "{{if .id}}{{.id}}{{end}}{{if .metadata.name}}{{.metadata.name}}{{end}}",
|
{"test template", "template", "{{if .id}}{{.id}}{{end}}{{if .metadata.name}}{{.metadata.name}}{{end}}",
|
||||||
podTest, "foo"},
|
podTest, []schema.GroupVersion{v1.SchemeGroupVersion}, "foo"},
|
||||||
{"test jsonpath", "jsonpath", "{.metadata.name}", podTest, "foo"},
|
{"test jsonpath", "jsonpath", "{.metadata.name}", podTest, []schema.GroupVersion{v1.SchemeGroupVersion}, "foo"},
|
||||||
{"test jsonpath list", "jsonpath", "{.items[*].metadata.name}", podListTest, "foo bar"},
|
{"test jsonpath list", "jsonpath", "{.items[*].metadata.name}", podListTest, []schema.GroupVersion{v1.SchemeGroupVersion}, "foo bar"},
|
||||||
{"test jsonpath empty list", "jsonpath", "{.items[*].metadata.name}", emptyListTest, ""},
|
{"test jsonpath empty list", "jsonpath", "{.items[*].metadata.name}", emptyListTest, []schema.GroupVersion{v1.SchemeGroupVersion}, ""},
|
||||||
{"test name", "name", "", podTest, "pod/foo\n"},
|
{"test name", "name", "", podTest, []schema.GroupVersion{v1.SchemeGroupVersion}, "pod/foo\n"},
|
||||||
{"emits versioned objects", "template", "{{.kind}}", testapi, "Pod"},
|
{"emits versioned objects", "template", "{{.kind}}", testapi, []schema.GroupVersion{v1.SchemeGroupVersion}, "Pod"},
|
||||||
}
|
}
|
||||||
for _, test := range printerTests {
|
for _, test := range printerTests {
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
printer, found, err := GetPrinter(test.Format, test.FormatArgument, false)
|
printer, generic, err := GetPrinter(test.Format, test.FormatArgument, false)
|
||||||
if err != nil || !found {
|
if err != nil {
|
||||||
t.Errorf("in %s, unexpected error: %#v", test.Name, err)
|
t.Errorf("in %s, unexpected error: %#v", test.Name, err)
|
||||||
}
|
}
|
||||||
|
if generic && len(test.OutputVersions) > 0 {
|
||||||
|
printer = NewVersionedPrinter(printer, api.Scheme, test.OutputVersions...)
|
||||||
|
}
|
||||||
if err := printer.PrintObj(test.Input, buf); err != nil {
|
if err := printer.PrintObj(test.Input, buf); err != nil {
|
||||||
t.Errorf("in %s, unexpected error: %#v", test.Name, err)
|
t.Errorf("in %s, unexpected error: %#v", test.Name, err)
|
||||||
}
|
}
|
||||||
@ -496,18 +500,32 @@ func TestTemplateStrings(t *testing.T) {
|
|||||||
|
|
||||||
func TestPrinters(t *testing.T) {
|
func TestPrinters(t *testing.T) {
|
||||||
om := func(name string) api.ObjectMeta { return api.ObjectMeta{Name: name} }
|
om := func(name string) api.ObjectMeta { return api.ObjectMeta{Name: name} }
|
||||||
templatePrinter, err := NewTemplatePrinter([]byte("{{.name}}"))
|
|
||||||
|
var (
|
||||||
|
err error
|
||||||
|
templatePrinter ResourcePrinter
|
||||||
|
templatePrinter2 ResourcePrinter
|
||||||
|
jsonpathPrinter ResourcePrinter
|
||||||
|
)
|
||||||
|
|
||||||
|
templatePrinter, err = NewTemplatePrinter([]byte("{{.name}}"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
templatePrinter2, err := NewTemplatePrinter([]byte("{{len .items}}"))
|
templatePrinter = NewVersionedPrinter(templatePrinter, api.Scheme, v1.SchemeGroupVersion)
|
||||||
|
|
||||||
|
templatePrinter2, err = NewTemplatePrinter([]byte("{{len .items}}"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
jsonpathPrinter, err := NewJSONPathPrinter("{.metadata.name}")
|
templatePrinter2 = NewVersionedPrinter(templatePrinter2, api.Scheme, v1.SchemeGroupVersion)
|
||||||
|
|
||||||
|
jsonpathPrinter, err = NewJSONPathPrinter("{.metadata.name}")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
jsonpathPrinter = NewVersionedPrinter(jsonpathPrinter, api.Scheme, v1.SchemeGroupVersion)
|
||||||
|
|
||||||
printers := map[string]ResourcePrinter{
|
printers := map[string]ResourcePrinter{
|
||||||
"humanReadable": NewHumanReadablePrinter(PrintOptions{
|
"humanReadable": NewHumanReadablePrinter(PrintOptions{
|
||||||
NoHeaders: true,
|
NoHeaders: true,
|
||||||
|
Loading…
Reference in New Issue
Block a user