From 98d34c2b5a25e00ef0b13eee67f687354c10c311 Mon Sep 17 00:00:00 2001 From: Bryce Palmer Date: Thu, 21 Apr 2022 15:37:16 -0400 Subject: [PATCH] make fake client delete operations honor dry run opt Signed-off-by: Bryce Palmer --- pkg/client/fake/client.go | 12 ++++++++++++ pkg/client/fake/client_test.go | 21 +++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/pkg/client/fake/client.go b/pkg/client/fake/client.go index d007cd14ee..94ff93acc8 100644 --- a/pkg/client/fake/client.go +++ b/pkg/client/fake/client.go @@ -473,6 +473,12 @@ func (c *fakeClient) Delete(ctx context.Context, obj client.Object, opts ...clie delOptions := client.DeleteOptions{} delOptions.ApplyOptions(opts) + for _, dryRunOpt := range delOptions.DryRun { + if dryRunOpt == metav1.DryRunAll { + return nil + } + } + // Check the ResourceVersion if that Precondition was specified. if delOptions.Preconditions != nil && delOptions.Preconditions.ResourceVersion != nil { name := accessor.GetName() @@ -507,6 +513,12 @@ func (c *fakeClient) DeleteAllOf(ctx context.Context, obj client.Object, opts .. dcOptions := client.DeleteAllOfOptions{} dcOptions.ApplyOptions(opts) + for _, dryRunOpt := range dcOptions.DryRun { + if dryRunOpt == metav1.DryRunAll { + return nil + } + } + gvr, _ := meta.UnsafeGuessKindToResource(gvk) o, err := c.tracker.List(gvr, gvk, dcOptions.Namespace) if err != nil { diff --git a/pkg/client/fake/client_test.go b/pkg/client/fake/client_test.go index 3d6ea17bed..3ee32d68fc 100644 --- a/pkg/client/fake/client_test.go +++ b/pkg/client/fake/client_test.go @@ -830,6 +830,27 @@ var _ = Describe("Fake client", func() { Expect(obj).To(Equal(cm)) Expect(obj.ObjectMeta.ResourceVersion).To(Equal(trackerAddResourceVersion)) }) + + It("Should not Delete the object", func() { + By("Deleting a configmap with DryRun with Delete()") + err := cl.Delete(context.Background(), cm, client.DryRunAll) + Expect(err).To(BeNil()) + + By("Deleting a configmap with DryRun with DeleteAllOf()") + err = cl.DeleteAllOf(context.Background(), cm, client.DryRunAll) + Expect(err).To(BeNil()) + + By("Getting the configmap") + namespacedName := types.NamespacedName{ + Name: "test-cm", + Namespace: "ns2", + } + obj := &corev1.ConfigMap{} + err = cl.Get(context.Background(), namespacedName, obj) + Expect(err).To(BeNil()) + Expect(obj).To(Equal(cm)) + Expect(obj.ObjectMeta.ResourceVersion).To(Equal(trackerAddResourceVersion)) + }) }) It("should be able to Patch", func() {