diff options
author | Valentin Rothberg <rothberg@redhat.com> | 2020-07-10 15:22:39 +0200 |
---|---|---|
committer | Valentin Rothberg <rothberg@redhat.com> | 2020-07-10 15:44:17 +0200 |
commit | bb9d939155c2ce37654abd58a71f650bde6bce50 (patch) | |
tree | f8b63a675fb0a7856f816eb982ab4dcf1e042bd7 /cmd/podman/parse | |
parent | 2ac8c6953481eb7391a6a7594709811f7ae3167f (diff) | |
download | podman-bb9d939155c2ce37654abd58a71f650bde6bce50.tar.gz podman-bb9d939155c2ce37654abd58a71f650bde6bce50.tar.bz2 podman-bb9d939155c2ce37654abd58a71f650bde6bce50.zip |
version/info: format: allow more json variants
Allow more variants to yield json output for `podman version` and
`podman info`. Instead of comparing strings, use a regex and add
unit and e2e tests.
Fixes: #6927
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
Diffstat (limited to 'cmd/podman/parse')
-rw-r--r-- | cmd/podman/parse/json.go | 9 | ||||
-rw-r--r-- | cmd/podman/parse/json_test.go | 30 |
2 files changed, 39 insertions, 0 deletions
diff --git a/cmd/podman/parse/json.go b/cmd/podman/parse/json.go new file mode 100644 index 000000000..95a6633b8 --- /dev/null +++ b/cmd/podman/parse/json.go @@ -0,0 +1,9 @@ +package parse + +import "regexp" + +var jsonFormatRegex = regexp.MustCompile(`^(\s*json\s*|\s*{{\s*json\s*\.\s*}}\s*)$`) + +func MatchesJSONFormat(s string) bool { + return jsonFormatRegex.Match([]byte(s)) +} diff --git a/cmd/podman/parse/json_test.go b/cmd/podman/parse/json_test.go new file mode 100644 index 000000000..5cad185fd --- /dev/null +++ b/cmd/podman/parse/json_test.go @@ -0,0 +1,30 @@ +package parse + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestMatchesJSONFormat(t *testing.T) { + tests := []struct { + input string + expected bool + }{ + {"json", true}, + {" json", true}, + {"json ", true}, + {" json ", true}, + {"{{json .}}", true}, + {"{{ json .}}", true}, + {"{{json . }}", true}, + {" {{ json . }} ", true}, + {"{{json }}", false}, + {"{{json .", false}, + {"json . }}", false}, + } + + for _, tt := range tests { + assert.Equal(t, tt.expected, MatchesJSONFormat(tt.input)) + } +} |