Skip to content

Commit d4fbec4

Browse files
authored
test: update ExpectDeletionTimestamp to be idempotent (#178)
1 parent 45862e4 commit d4fbec4

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

test/expectations/expectations.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)