Merge pull request #92619 from ii/heyste-get-apigroup-list-test

Write checkAPIGroupPreferredVersion Test - +16 Endpoint coverage
This commit is contained in:
Kubernetes Prow Robot 2020-07-17 02:51:01 -07:00 committed by GitHub
commit a3e3b355fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -17,6 +17,8 @@ limitations under the License.
package apimachinery
import (
"context"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
utilversion "k8s.io/apimachinery/pkg/util/version"
"k8s.io/apiserver/pkg/endpoints/discovery"
"k8s.io/kubernetes/test/e2e/framework"
@ -77,4 +79,37 @@ var _ = SIGDescribe("Discovery", func() {
framework.Failf("didn't find resource %s in the discovery doc", spec.Names.Plural)
}
})
ginkgo.It("should validate PreferredVersion for each APIGroup", func() {
// get list of APIGroup endpoints
list := &metav1.APIGroupList{}
err := f.ClientSet.Discovery().RESTClient().Get().AbsPath("/apis/").Do(context.TODO()).Into(list)
framework.ExpectNoError(err, "Failed to find /apis/")
framework.ExpectNotEqual(len(list.Groups), 0, "Missing APIGroups")
for _, group := range list.Groups {
framework.Logf("Checking APIGroup: %v", group.Name)
// locate APIGroup endpoint
checkGroup := &metav1.APIGroup{}
apiPath := "/apis/" + group.Name + "/"
err = f.ClientSet.Discovery().RESTClient().Get().AbsPath(apiPath).Do(context.TODO()).Into(checkGroup)
framework.ExpectNoError(err, "Fail to access: %s", apiPath)
framework.ExpectNotEqual(len(checkGroup.Versions), 0, "No version found for %v", group.Name)
framework.Logf("PreferredVersion.GroupVersion: %s", checkGroup.PreferredVersion.GroupVersion)
framework.Logf("Versions found %v", checkGroup.Versions)
// confirm that the PreferredVersion is a valid version
match := false
for _, version := range checkGroup.Versions {
if version.GroupVersion == checkGroup.PreferredVersion.GroupVersion {
framework.Logf("%s matches %s", version.GroupVersion, checkGroup.PreferredVersion.GroupVersion)
match = true
break
}
}
framework.ExpectEqual(true, match, "failed to find a valid version for PreferredVersion")
}
})
})