Merge pull request #103248 from sttts/sttts-crd-converison-test

apiextension: fix typo and test case in conversion integration test
This commit is contained in:
Kubernetes Prow Robot 2021-06-29 11:20:03 -07:00 committed by GitHub
commit 92726bf0f3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -677,7 +677,13 @@ func expectConversionFailureMessage(id, message string) func(t *testing.T, ctc *
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
for _, verb := range []string{"get", "list", "create", "udpate", "patch", "delete", "deletecollection"} {
// manually convert
objv1beta2 := newConversionMultiVersionFixture(ns, id, "v1beta2")
meta, _, _ := unstructured.NestedFieldCopy(obj.Object, "metadata")
unstructured.SetNestedField(objv1beta2.Object, meta, "metadata")
for _, verb := range []string{"get", "list", "create", "update", "patch", "delete", "deletecollection"} {
t.Run(verb, func(t *testing.T) { t.Run(verb, func(t *testing.T) {
switch verb { switch verb {
case "get": case "get":
@ -687,13 +693,15 @@ func expectConversionFailureMessage(id, message string) func(t *testing.T, ctc *
case "create": case "create":
_, err = clients["v1beta2"].Create(context.TODO(), newConversionMultiVersionFixture(ns, id, "v1beta2"), metav1.CreateOptions{}) _, err = clients["v1beta2"].Create(context.TODO(), newConversionMultiVersionFixture(ns, id, "v1beta2"), metav1.CreateOptions{})
case "update": case "update":
_, err = clients["v1beta2"].Update(context.TODO(), obj, metav1.UpdateOptions{}) _, err = clients["v1beta2"].Update(context.TODO(), objv1beta2, metav1.UpdateOptions{})
case "patch": case "patch":
_, err = clients["v1beta2"].Patch(context.TODO(), obj.GetName(), types.MergePatchType, []byte(`{"metadata":{"annotations":{"patch":"true"}}}`), metav1.PatchOptions{}) _, err = clients["v1beta2"].Patch(context.TODO(), obj.GetName(), types.MergePatchType, []byte(`{"metadata":{"annotations":{"patch":"true"}}}`), metav1.PatchOptions{})
case "delete": case "delete":
err = clients["v1beta2"].Delete(context.TODO(), obj.GetName(), metav1.DeleteOptions{}) err = clients["v1beta2"].Delete(context.TODO(), obj.GetName(), metav1.DeleteOptions{})
case "deletecollection": case "deletecollection":
err = clients["v1beta2"].DeleteCollection(context.TODO(), metav1.DeleteOptions{}, metav1.ListOptions{}) err = clients["v1beta2"].DeleteCollection(context.TODO(), metav1.DeleteOptions{}, metav1.ListOptions{})
default:
t.Errorf("unknown verb %q", verb)
} }
if err == nil { if err == nil {
@ -704,15 +712,32 @@ func expectConversionFailureMessage(id, message string) func(t *testing.T, ctc *
}) })
} }
for _, subresource := range []string{"status", "scale"} { for _, subresource := range []string{"status", "scale"} {
for _, verb := range []string{"get", "udpate", "patch"} { for _, verb := range []string{"get", "update", "patch"} {
t.Run(fmt.Sprintf("%s-%s", subresource, verb), func(t *testing.T) { t.Run(fmt.Sprintf("%s-%s", subresource, verb), func(t *testing.T) {
switch verb { switch verb {
case "create": case "get":
_, err = clients["v1beta2"].Create(context.TODO(), newConversionMultiVersionFixture(ns, id, "v1beta2"), metav1.CreateOptions{}, subresource) _, err = clients["v1beta2"].Get(context.TODO(), obj.GetName(), metav1.GetOptions{}, subresource)
case "update": case "update":
_, err = clients["v1beta2"].Update(context.TODO(), obj, metav1.UpdateOptions{}, subresource) o := objv1beta2
if subresource == "scale" {
o = &unstructured.Unstructured{
Object: map[string]interface{}{
"apiVersion": "autoscaling/v1",
"kind": "Scale",
"metadata": map[string]interface{}{
"name": obj.GetName(),
},
"spec": map[string]interface{}{
"replicas": 42,
},
},
}
}
_, err = clients["v1beta2"].Update(context.TODO(), o, metav1.UpdateOptions{}, subresource)
case "patch": case "patch":
_, err = clients["v1beta2"].Patch(context.TODO(), obj.GetName(), types.MergePatchType, []byte(`{"metadata":{"annotations":{"patch":"true"}}}`), metav1.PatchOptions{}, subresource) _, err = clients["v1beta2"].Patch(context.TODO(), obj.GetName(), types.MergePatchType, []byte(`{"metadata":{"annotations":{"patch":"true"}}}`), metav1.PatchOptions{}, subresource)
default:
t.Errorf("unknown subresource verb %q", verb)
} }
if err == nil { if err == nil {