mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-30 06:54:01 +00:00
Merge pull request #125887 from fxierh/fakediscovery-fix
[client-go] Enable FakeDiscovery client to simulate errors by fixing error handling
This commit is contained in:
commit
40225a788c
@ -47,7 +47,9 @@ func (c *FakeDiscovery) ServerResourcesForGroupVersion(groupVersion string) (*me
|
||||
Verb: "get",
|
||||
Resource: schema.GroupVersionResource{Resource: "resource"},
|
||||
}
|
||||
c.Invokes(action, nil)
|
||||
if _, err := c.Invokes(action, nil); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
for _, resourceList := range c.Resources {
|
||||
if resourceList.GroupVersion == groupVersion {
|
||||
return resourceList, nil
|
||||
@ -77,7 +79,9 @@ func (c *FakeDiscovery) ServerGroupsAndResources() ([]*metav1.APIGroup, []*metav
|
||||
Verb: "get",
|
||||
Resource: schema.GroupVersionResource{Resource: "resource"},
|
||||
}
|
||||
c.Invokes(action, nil)
|
||||
if _, err = c.Invokes(action, nil); err != nil {
|
||||
return resultGroups, c.Resources, err
|
||||
}
|
||||
return resultGroups, c.Resources, nil
|
||||
}
|
||||
|
||||
@ -100,7 +104,9 @@ func (c *FakeDiscovery) ServerGroups() (*metav1.APIGroupList, error) {
|
||||
Verb: "get",
|
||||
Resource: schema.GroupVersionResource{Resource: "group"},
|
||||
}
|
||||
c.Invokes(action, nil)
|
||||
if _, err := c.Invokes(action, nil); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
groups := map[string]*metav1.APIGroup{}
|
||||
|
||||
|
@ -63,3 +63,48 @@ func TestFakingServerVersionWithError(t *testing.T) {
|
||||
t.Fatal("ServerVersion should return expected error, returned different error instead")
|
||||
}
|
||||
}
|
||||
|
||||
func TestFakingServerResourcesForGroupVersionWithError(t *testing.T) {
|
||||
expectedError := errors.New("an error occurred")
|
||||
fakeClient := fakeclientset.NewClientset()
|
||||
fakeClient.Discovery().(*fakediscovery.FakeDiscovery).PrependReactor("*", "*", func(action kubetesting.Action) (handled bool, ret runtime.Object, err error) {
|
||||
return true, nil, expectedError
|
||||
})
|
||||
|
||||
result, err := fakeClient.Discovery().ServerResourcesForGroupVersion("dummy.group.io/v1beta2")
|
||||
if result != nil {
|
||||
t.Errorf(`expect result to be nil but got "%v" instead`, result)
|
||||
}
|
||||
if !errors.Is(err, expectedError) {
|
||||
t.Errorf(`expect error to be "%v" but got "%v" instead`, expectedError, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFakingServerGroupsWithError(t *testing.T) {
|
||||
expectedError := errors.New("an error occurred")
|
||||
fakeClient := fakeclientset.NewClientset()
|
||||
fakeClient.Discovery().(*fakediscovery.FakeDiscovery).PrependReactor("*", "*", func(action kubetesting.Action) (handled bool, ret runtime.Object, err error) {
|
||||
return true, nil, expectedError
|
||||
})
|
||||
|
||||
result, err := fakeClient.Discovery().ServerGroups()
|
||||
if result != nil {
|
||||
t.Errorf(`expect result to be nil but got "%v" instead`, result)
|
||||
}
|
||||
if !errors.Is(err, expectedError) {
|
||||
t.Errorf(`expect error to be "%v" but got "%v" instead`, expectedError, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFakingServerGroupsAndResourcesWithError(t *testing.T) {
|
||||
expectedError := errors.New("an error occurred")
|
||||
fakeClient := fakeclientset.NewClientset()
|
||||
fakeClient.Discovery().(*fakediscovery.FakeDiscovery).PrependReactor("get", "resource", func(action kubetesting.Action) (handled bool, ret runtime.Object, err error) {
|
||||
return true, nil, expectedError
|
||||
})
|
||||
|
||||
_, _, err := fakeClient.Discovery().ServerGroupsAndResources()
|
||||
if !errors.Is(err, expectedError) {
|
||||
t.Errorf(`expect error to be "%v" but got "%v" instead`, expectedError, err)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user