mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-06 02:34:03 +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",
|
Verb: "get",
|
||||||
Resource: schema.GroupVersionResource{Resource: "resource"},
|
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 {
|
for _, resourceList := range c.Resources {
|
||||||
if resourceList.GroupVersion == groupVersion {
|
if resourceList.GroupVersion == groupVersion {
|
||||||
return resourceList, nil
|
return resourceList, nil
|
||||||
@ -77,7 +79,9 @@ func (c *FakeDiscovery) ServerGroupsAndResources() ([]*metav1.APIGroup, []*metav
|
|||||||
Verb: "get",
|
Verb: "get",
|
||||||
Resource: schema.GroupVersionResource{Resource: "resource"},
|
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
|
return resultGroups, c.Resources, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,7 +104,9 @@ func (c *FakeDiscovery) ServerGroups() (*metav1.APIGroupList, error) {
|
|||||||
Verb: "get",
|
Verb: "get",
|
||||||
Resource: schema.GroupVersionResource{Resource: "group"},
|
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{}
|
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")
|
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