From 1366e0344a1b368a75f1e0954b1040f3f00e3647 Mon Sep 17 00:00:00 2001 From: Donny Xia Date: Tue, 11 Aug 2020 13:43:18 -0700 Subject: [PATCH 1/3] Add test for long line break --- api/krusty/longlinebreak_test.go | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 api/krusty/longlinebreak_test.go diff --git a/api/krusty/longlinebreak_test.go b/api/krusty/longlinebreak_test.go new file mode 100644 index 000000000..365687628 --- /dev/null +++ b/api/krusty/longlinebreak_test.go @@ -0,0 +1,44 @@ +package krusty_test + +import ( + "testing" + + kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest" +) + +func TestLongLineBreaks(t *testing.T) { + th := kusttest_test.MakeHarness(t) + th.WriteF("/app/deployment.yaml", ` +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: test + labels: + app.version: "{{ .Values.services.mariadb.app.version }}" +spec: + template: + spec: + containers: + - name: mariadb + image: "thisIsAReallyLongRepositoryLinkThatResultsInALineBreakWhenBuildingWithKustomize/mariadb:{{ .Values.services.mariadb.image.version }}" +`) + th.WriteK("/app", ` +resources: +- deployment.yaml +`) + m := th.Run("/app", th.MakeDefaultOptions()) + th.AssertActualEqualsExpected(m, ` +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + labels: + app.version: '{{ .Values.services.mariadb.app.version }}' + name: test +spec: + template: + spec: + containers: + - image: thisIsAReallyLongRepositoryLinkThatResultsInALineBreakWhenBuildingWithKustomize/mariadb:{{ .Values.services.mariadb.image.version }} + name: mariadb +`) +} From e5bc6446539a0c9004a6266d04ae3d22b60e61a6 Mon Sep 17 00:00:00 2001 From: Donny Xia Date: Wed, 12 Aug 2020 12:17:56 -0700 Subject: [PATCH 2/3] change the test for blanks in string --- api/krusty/longlinebreak_test.go | 44 ---------------- api/krusty/stringquoteblank_test.go | 79 +++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 44 deletions(-) delete mode 100644 api/krusty/longlinebreak_test.go create mode 100644 api/krusty/stringquoteblank_test.go diff --git a/api/krusty/longlinebreak_test.go b/api/krusty/longlinebreak_test.go deleted file mode 100644 index 365687628..000000000 --- a/api/krusty/longlinebreak_test.go +++ /dev/null @@ -1,44 +0,0 @@ -package krusty_test - -import ( - "testing" - - kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest" -) - -func TestLongLineBreaks(t *testing.T) { - th := kusttest_test.MakeHarness(t) - th.WriteF("/app/deployment.yaml", ` -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: test - labels: - app.version: "{{ .Values.services.mariadb.app.version }}" -spec: - template: - spec: - containers: - - name: mariadb - image: "thisIsAReallyLongRepositoryLinkThatResultsInALineBreakWhenBuildingWithKustomize/mariadb:{{ .Values.services.mariadb.image.version }}" -`) - th.WriteK("/app", ` -resources: -- deployment.yaml -`) - m := th.Run("/app", th.MakeDefaultOptions()) - th.AssertActualEqualsExpected(m, ` -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - labels: - app.version: '{{ .Values.services.mariadb.app.version }}' - name: test -spec: - template: - spec: - containers: - - image: thisIsAReallyLongRepositoryLinkThatResultsInALineBreakWhenBuildingWithKustomize/mariadb:{{ .Values.services.mariadb.image.version }} - name: mariadb -`) -} diff --git a/api/krusty/stringquoteblank_test.go b/api/krusty/stringquoteblank_test.go new file mode 100644 index 000000000..7c715a890 --- /dev/null +++ b/api/krusty/stringquoteblank_test.go @@ -0,0 +1,79 @@ +package krusty_test + +import ( + "testing" + + kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest" +) + +// This test is for output string style. +// Currently all quotes will be removed if the string is valid as plain (unquoted) style. +// If a string cannot be unquoted, it will be put into a pair of single quotes. +// See https://yaml.org/spec/1.2/spec.html#id2788859 for more details about what kind of string +// is invalid as plain style. +func TestLongLineBreaks(t *testing.T) { + th := kusttest_test.MakeHarness(t) + th.WriteF("/app/deployment.yaml", ` +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: test +spec: + template: + spec: + containers: + - name: mariadb + image: test + env: + - name: SHORT_STRING + value: short_string + - name: SHORT_STRING_WITH_SINGLE_QUOTE + value: 'short_string' + - name: SHORT_STRING_WITH_DOUBLE_QUOTE + value: "short_string" + - name: SHORT_STRING_BLANK + value: short string + - name: LONG_STRING_BLANK + value: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius. Integer pellentesque, est id rhoncus condimentum, est eros tristique diam, ac cursus arcu ante id mi. + - name: LONG_STRING_BLANK_WITH_SINGLE_QUOTE + value: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius. Integer pellentesque, est id rhoncus condimentum, est eros tristique diam, ac cursus arcu ante id mi.' + - name: LONG_STRING_BLANK_WITH_DOUBLE_QUOTE + value: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius. Integer pellentesque, est id rhoncus condimentum, est eros tristique diam, ac cursus arcu ante id mi." + - name: INVALID_PLAIN_STYLE_STRING + value: ': test' +`) + th.WriteK("/app", ` +resources: +- deployment.yaml +`) + m := th.Run("/app", th.MakeDefaultOptions()) + th.AssertActualEqualsExpected(m, ` +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: test +spec: + template: + spec: + containers: + - env: + - name: SHORT_STRING + value: short_string + - name: SHORT_STRING_WITH_SINGLE_QUOTE + value: short_string + - name: SHORT_STRING_WITH_DOUBLE_QUOTE + value: short_string + - name: SHORT_STRING_BLANK + value: short string + - name: LONG_STRING_BLANK + value: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius. Integer pellentesque, est id rhoncus condimentum, est eros tristique diam, ac cursus arcu ante id mi. + - name: LONG_STRING_BLANK_WITH_SINGLE_QUOTE + value: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius. Integer pellentesque, est id rhoncus condimentum, est eros tristique diam, ac cursus arcu ante id mi. + - name: LONG_STRING_BLANK_WITH_DOUBLE_QUOTE + value: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius. Integer pellentesque, est id rhoncus condimentum, est eros tristique diam, ac cursus arcu ante id mi. + - name: INVALID_PLAIN_STYLE_STRING + value: ': test' + image: test + name: mariadb +`) +} From 6f782ac8c3020b7c27d14ed9be07685e2cb56db9 Mon Sep 17 00:00:00 2001 From: Donny Xia Date: Wed, 12 Aug 2020 12:25:49 -0700 Subject: [PATCH 3/3] fix linter issue --- api/krusty/stringquoteblank_test.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/api/krusty/stringquoteblank_test.go b/api/krusty/stringquoteblank_test.go index 7c715a890..7c00ae183 100644 --- a/api/krusty/stringquoteblank_test.go +++ b/api/krusty/stringquoteblank_test.go @@ -34,11 +34,11 @@ spec: - name: SHORT_STRING_BLANK value: short string - name: LONG_STRING_BLANK - value: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius. Integer pellentesque, est id rhoncus condimentum, est eros tristique diam, ac cursus arcu ante id mi. + value: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius. - name: LONG_STRING_BLANK_WITH_SINGLE_QUOTE - value: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius. Integer pellentesque, est id rhoncus condimentum, est eros tristique diam, ac cursus arcu ante id mi.' + value: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius.' - name: LONG_STRING_BLANK_WITH_DOUBLE_QUOTE - value: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius. Integer pellentesque, est id rhoncus condimentum, est eros tristique diam, ac cursus arcu ante id mi." + value: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius." - name: INVALID_PLAIN_STYLE_STRING value: ': test' `) @@ -66,11 +66,11 @@ spec: - name: SHORT_STRING_BLANK value: short string - name: LONG_STRING_BLANK - value: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius. Integer pellentesque, est id rhoncus condimentum, est eros tristique diam, ac cursus arcu ante id mi. + value: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius. - name: LONG_STRING_BLANK_WITH_SINGLE_QUOTE - value: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius. Integer pellentesque, est id rhoncus condimentum, est eros tristique diam, ac cursus arcu ante id mi. + value: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius. - name: LONG_STRING_BLANK_WITH_DOUBLE_QUOTE - value: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius. Integer pellentesque, est id rhoncus condimentum, est eros tristique diam, ac cursus arcu ante id mi. + value: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit ex non molestie varius. - name: INVALID_PLAIN_STYLE_STRING value: ': test' image: test