fix thirdparty discovery, add test

pull/6/head
Chao Xu 2016-02-25 14:13:28 -08:00
parent df234d83cd
commit 56bddbcae5
2 changed files with 52 additions and 1 deletions

View File

@ -918,3 +918,54 @@ func testInstallThirdPartyResourceRemove(t *testing.T, version string) {
}
}
}
func TestThirdPartyDiscovery(t *testing.T) {
for _, version := range versionsToTest {
testThirdPartyDiscovery(t, version)
}
}
func testThirdPartyDiscovery(t *testing.T, version string) {
_, etcdserver, server, assert := initThirdParty(t, version)
// TODO: Uncomment when fix #19254
// defer server.Close()
defer etcdserver.Terminate(t)
resp, err := http.Get(server.URL + "/apis/company.com/")
if !assert.NoError(err) {
return
}
assert.Equal(http.StatusOK, resp.StatusCode)
group := unversioned.APIGroup{}
assert.NoError(decodeResponse(resp, &group))
assert.Equal(group.APIVersion, "v1")
assert.Equal(group.Kind, "APIGroup")
assert.Equal(group.Name, "company.com")
assert.Equal(group.Versions, []unversioned.GroupVersionForDiscovery{
{
GroupVersion: "company.com/" + version,
Version: version,
},
})
assert.Equal(group.PreferredVersion, unversioned.GroupVersionForDiscovery{})
resp, err = http.Get(server.URL + "/apis/company.com/" + version)
if !assert.NoError(err) {
return
}
assert.Equal(http.StatusOK, resp.StatusCode)
resourceList := unversioned.APIResourceList{}
assert.NoError(decodeResponse(resp, &resourceList))
assert.Equal(resourceList.APIVersion, "v1")
assert.Equal(resourceList.Kind, "APIResourceList")
assert.Equal(resourceList.GroupVersion, "company.com/"+version)
assert.Equal(resourceList.APIResources, []unversioned.APIResource{
{
Name: "foos",
Namespaced: true,
Kind: "Foo",
},
})
}

View File

@ -324,7 +324,7 @@ func (t *thirdPartyResourceDataCodec) EncodeToStream(obj runtime.Object, stream
}
fmt.Fprintf(stream, template, t.kind+"List", strings.Join(dataStrings, ","))
return nil
case *unversioned.Status:
case *unversioned.Status, *unversioned.APIResourceList:
return t.delegate.EncodeToStream(obj, stream, overrides...)
default:
return fmt.Errorf("unexpected object to encode: %#v", obj)