apiextensions: fix test loop for CRD validation

pull/6/head
Dr. Stefan Schimanski 2017-10-13 12:15:17 +02:00
parent e23983189d
commit 333f49f5d1
1 changed files with 8 additions and 4 deletions

View File

@ -21,6 +21,7 @@ import (
"testing" "testing"
"time" "time"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
@ -379,15 +380,18 @@ func TestCRValidationOnCRDUpdate(t *testing.T) {
// update the CRD to a less stricter schema // update the CRD to a less stricter schema
gottenCRD.Spec.Validation.OpenAPIV3Schema.Required = []string{"alpha", "beta"} gottenCRD.Spec.Validation.OpenAPIV3Schema.Required = []string{"alpha", "beta"}
if _, err = apiExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().Update(gottenCRD); err != nil {
updatedCRD, err := apiExtensionClient.ApiextensionsV1beta1().CustomResourceDefinitions().Update(gottenCRD)
if err != nil {
t.Fatal(err) t.Fatal(err)
} }
// CR is now accepted // CR is now accepted
err = wait.Poll(500*time.Millisecond, wait.ForeverTestTimeout, func() (bool, error) { err = wait.Poll(500*time.Millisecond, wait.ForeverTestTimeout, func() (bool, error) {
_, err = instantiateCustomResource(t, newNoxuValidationInstance(ns, "foo"), noxuResourceClient, updatedCRD) _, err := noxuResourceClient.Create(newNoxuValidationInstance(ns, "foo"))
if statusError, isStatus := err.(*apierrors.StatusError); isStatus {
if strings.Contains(statusError.Error(), "is invalid") {
return false, nil
}
}
if err != nil { if err != nil {
return false, err return false, err
} }