@@ -133,14 +133,17 @@ func ExpectDeletionTimestampSet(ctx context.Context, c client.Client, objects ..
133133 GinkgoHelper ()
134134 for _ , object := range objects {
135135 Expect (c .Get (ctx , client .ObjectKeyFromObject (object ), object )).To (Succeed ())
136- controllerutil .AddFinalizer (object , "testing/finalizer" )
137- Expect (c .Update (ctx , object )).To (Succeed ())
138- Expect (c .Delete (ctx , object )).To (Succeed ())
139- DeferCleanup (func (obj client.Object ) {
140- mergeFrom := client .MergeFrom (obj .DeepCopyObject ().(client.Object ))
141- obj .SetFinalizers ([]string {})
142- Expect (client .IgnoreNotFound (c .Patch (ctx , obj , mergeFrom ))).To (Succeed ())
143- }, object )
136+ if object .GetDeletionTimestamp ().IsZero () {
137+ // finalizers cannot be added to already deleting objects, so this will fail
138+ controllerutil .AddFinalizer (object , "testing/finalizer" )
139+ Expect (c .Update (ctx , object )).To (Succeed ())
140+ Expect (c .Delete (ctx , object )).To (Succeed ())
141+ DeferCleanup (func (obj client.Object ) {
142+ mergeFrom := client .MergeFrom (obj .DeepCopyObject ().(client.Object ))
143+ obj .SetFinalizers ([]string {})
144+ Expect (client .IgnoreNotFound (c .Patch (ctx , obj , mergeFrom ))).To (Succeed ())
145+ }, object )
146+ }
144147 }
145148}
146149
0 commit comments