Improve admission e2e-tests (#7953)

Check if the message equals an expected value for checks without errors.
This commit is contained in:
Kamil Hristov 2021-11-29 04:33:22 +02:00 committed by GitHub
parent e9c297e74d
commit 042e426b01
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -150,7 +150,8 @@ var _ = framework.IngressNginxDescribe("[Serial] admission controller", func() {
})
ginkgo.It("should not return an error if the Ingress V1 definition is valid with Ingress Class", func() {
err := createIngress(f.Namespace, validV1Ingress)
out, err := createIngress(f.Namespace, validV1Ingress)
assert.Equal(ginkgo.GinkgoT(), "ingress.networking.k8s.io/extensions created\n", out)
assert.Nil(ginkgo.GinkgoT(), err, "creating an ingress using kubectl")
f.WaitForNginxConfiguration(func(cfg string) bool {
@ -165,7 +166,8 @@ var _ = framework.IngressNginxDescribe("[Serial] admission controller", func() {
})
ginkgo.It("should not return an error if the Ingress V1 definition is valid with IngressClass annotation", func() {
err := createIngress(f.Namespace, validV1IngressAnnotation)
out, err := createIngress(f.Namespace, validV1IngressAnnotation)
assert.Equal(ginkgo.GinkgoT(), "ingress.networking.k8s.io/extensions-class created\n", out)
assert.Nil(ginkgo.GinkgoT(), err, "creating an ingress using kubectl")
f.WaitForNginxConfiguration(func(cfg string) bool {
@ -180,7 +182,8 @@ var _ = framework.IngressNginxDescribe("[Serial] admission controller", func() {
})
ginkgo.It("should return an error if the Ingress V1 definition contains invalid annotations", func() {
err := createIngress(f.Namespace, invalidV1Ingress)
out, err := createIngress(f.Namespace, invalidV1Ingress)
assert.Empty(ginkgo.GinkgoT(), out)
assert.NotNil(ginkgo.GinkgoT(), err, "creating an ingress using kubectl")
_, err = f.KubeClientSet.NetworkingV1().Ingresses(f.Namespace).Get(context.TODO(), "extensions-invalid", metav1.GetOptions{})
@ -270,20 +273,22 @@ spec:
`
)
func createIngress(namespace, ingressDefinition string) error {
func createIngress(namespace, ingressDefinition string) (string, error) {
var (
execOut bytes.Buffer
execErr bytes.Buffer
)
cmd := exec.Command("/bin/bash", "-c", fmt.Sprintf("%v --warnings-as-errors=false apply --namespace %s -f -", framework.KubectlPath, namespace))
cmd.Stdin = strings.NewReader(ingressDefinition)
cmd.Stdout = &execOut
cmd.Stderr = &execErr
err := cmd.Run()
if err != nil {
stderr := strings.TrimSpace(execErr.String())
return fmt.Errorf("Kubectl error: %v\n%v", err, stderr)
return "", fmt.Errorf("kubectl error: %v\n%v", err, stderr)
}
return nil
return execOut.String(), nil
}