Merge pull request #114291 from MaxHorstmann/master

#79612 fix(client-go): return error in fake discovery

Kubernetes-commit: 0783cf49e853e56f2f5e1708519c09fa83f0349f
This commit is contained in:
Kubernetes Publisher 2022-12-19 09:21:44 -08:00
commit 19c9966172
2 changed files with 23 additions and 1 deletions

View File

@ -141,7 +141,10 @@ func (c *FakeDiscovery) ServerVersion() (*version.Info, error) {
action := testing.ActionImpl{}
action.Verb = "get"
action.Resource = schema.GroupVersionResource{Resource: "version"}
c.Invokes(action, nil)
_, err := c.Invokes(action, nil)
if err != nil {
return nil, err
}
if c.FakedServerVersion != nil {
return c.FakedServerVersion, nil

View File

@ -17,11 +17,14 @@ limitations under the License.
package fake_test
import (
"errors"
"testing"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/version"
fakediscovery "k8s.io/client-go/discovery/fake"
fakeclientset "k8s.io/client-go/kubernetes/fake"
kubetesting "k8s.io/client-go/testing"
)
func TestFakingServerVersion(t *testing.T) {
@ -44,3 +47,19 @@ func TestFakingServerVersion(t *testing.T) {
t.Fatalf("unexpected faked discovery return value: %q", sv.GitCommit)
}
}
func TestFakingServerVersionWithError(t *testing.T) {
expectedError := errors.New("an error occurred")
fakeClient := fakeclientset.NewSimpleClientset()
fakeClient.Discovery().(*fakediscovery.FakeDiscovery).PrependReactor("*", "*", func(action kubetesting.Action) (handled bool, ret runtime.Object, err error) {
return true, nil, expectedError
})
_, err := fakeClient.Discovery().ServerVersion()
if err == nil {
t.Fatal("ServerVersion should return error, returned nil instead")
}
if err != expectedError {
t.Fatal("ServerVersion should return expected error, returned different error instead")
}
}