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 {
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) {
switch verb {
case "get":
@ -687,13 +693,15 @@ func expectConversionFailureMessage(id, message string) func(t *testing.T, ctc *
case "create":
_, err = clients["v1beta2"].Create(context.TODO(), newConversionMultiVersionFixture(ns, id, "v1beta2"), metav1.CreateOptions{})
case "update":
_, err = clients["v1beta2"].Update(context.TODO(), obj, metav1.UpdateOptions{})
_, err = clients["v1beta2"].Update(context.TODO(), objv1beta2, metav1.UpdateOptions{})
case "patch":
_, err = clients["v1beta2"].Patch(context.TODO(), obj.GetName(), types.MergePatchType, []byte(`{"metadata":{"annotations":{"patch":"true"}}}`), metav1.PatchOptions{})
case "delete":
err = clients["v1beta2"].Delete(context.TODO(), obj.GetName(), metav1.DeleteOptions{})
case "deletecollection":
err = clients["v1beta2"].DeleteCollection(context.TODO(), metav1.DeleteOptions{}, metav1.ListOptions{})
default:
t.Errorf("unknown verb %q", verb)
}
if err == nil {
@ -704,15 +712,32 @@ func expectConversionFailureMessage(id, message string) func(t *testing.T, ctc *
})
}
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) {
switch verb {
case "create":
_, err = clients["v1beta2"].Create(context.TODO(), newConversionMultiVersionFixture(ns, id, "v1beta2"), metav1.CreateOptions{}, subresource)
case "get":
_, err = clients["v1beta2"].Get(context.TODO(), obj.GetName(), metav1.GetOptions{}, subresource)
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":
_, 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 {