summaryrefslogtreecommitdiff
path: root/cmd/podman/common/completion_test.go
diff options
context:
space:
mode:
authorPaul Holzinger <pholzing@redhat.com>2021-08-26 21:44:53 +0200
committerPaul Holzinger <pholzing@redhat.com>2021-08-27 10:28:15 +0200
commitab6c43f3e072d088149c4f5371e0e53ff14ec7ff (patch)
tree7fc34428445851eb790943050a4c68074a516133 /cmd/podman/common/completion_test.go
parent94c37d7d470871f9d63b32c97094f5faab1e8a08 (diff)
downloadpodman-ab6c43f3e072d088149c4f5371e0e53ff14ec7ff.tar.gz
podman-ab6c43f3e072d088149c4f5371e0e53ff14ec7ff.tar.bz2
podman-ab6c43f3e072d088149c4f5371e0e53ff14ec7ff.zip
Shell completion for --format with anonymous fields
In commit d81021ed265e I introduced shell completion for the `--format` flag. This is a very nice way to complete go template field names. However it did not work correct for anonymous fields. In this case the child fields can be accessed directly from the parent. For example: ``` type Anonymous struct { Field1 string Field2 string ... } type MyType struct { Anonymous } var s = MyType{} ``` Now if you want to access a field from the Anonymous struct you can just do `s.Field1`. The same is allowed for go templates, using `{{.Field1}}` should work. This commit adds this functionality, if the field is anonymous read the child field names recursively and add them to the suggestions. Signed-off-by: Paul Holzinger <pholzing@redhat.com>
Diffstat (limited to 'cmd/podman/common/completion_test.go')
-rw-r--r--cmd/podman/common/completion_test.go13
1 files changed, 10 insertions, 3 deletions
diff --git a/cmd/podman/common/completion_test.go b/cmd/podman/common/completion_test.go
index 5bd627b85..84b3c1132 100644
--- a/cmd/podman/common/completion_test.go
+++ b/cmd/podman/common/completion_test.go
@@ -17,6 +17,10 @@ type Car struct {
Extras map[string]string
}
+type Anonymous struct {
+ Hello string
+}
+
func (c Car) Type() string {
return ""
}
@@ -30,7 +34,10 @@ func TestAutocompleteFormat(t *testing.T) {
Name string
Age int
Car *Car
- }{}
+ *Anonymous
+ }{
+ Anonymous: &Anonymous{},
+ }
testStruct.Car = &Car{}
testStruct.Car.Extras = map[string]string{"test": "1"}
@@ -73,12 +80,12 @@ func TestAutocompleteFormat(t *testing.T) {
{
"fist level struct field name",
"{{.",
- []string{"{{.Name}}", "{{.Age}}", "{{.Car."},
+ []string{"{{.Name}}", "{{.Age}}", "{{.Car.", "{{.Anonymous.", "{{.Hello}}"},
},
{
"fist level struct field name",
"{{ .",
- []string{"{{ .Name}}", "{{ .Age}}", "{{ .Car."},
+ []string{"{{ .Name}}", "{{ .Age}}", "{{ .Car.", "{{ .Anonymous.", "{{ .Hello}}"},
},
{
"fist level struct field name",