Skip to content

Commit ac093b0

Browse files
Address review feedback #2
Signed-off-by: Rashmi Gottipati <chowdary.grashmi@gmail.com>
1 parent b269322 commit ac093b0

File tree

1 file changed

+25
-16
lines changed

1 file changed

+25
-16
lines changed

pkg/finalizer/finalizer_test.go

+25-16
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,10 @@ var _ = Describe("TestFinalizer", func() {
3434
var f mockFinalizer
3535
BeforeEach(func() {
3636
pod = &corev1.Pod{
37-
ObjectMeta: metav1.ObjectMeta{
38-
Finalizers: []string{"finalizers.sigs.k8s.io/testfinalizer"},
39-
},
37+
ObjectMeta: metav1.ObjectMeta{},
4038
}
41-
Expect(pod).NotTo(BeNil())
42-
4339
finalizers = NewFinalizers()
44-
Expect(finalizers).NotTo(BeNil())
45-
46-
f := mockFinalizer{}
47-
Expect(f).NotTo(BeNil())
48-
40+
f = mockFinalizer{}
4941
})
5042
Describe("Register", func() {
5143
It("successfully registers a finalizer", func() {
@@ -65,12 +57,6 @@ var _ = Describe("TestFinalizer", func() {
6557
})
6658
})
6759
Describe("Finalize", func() {
68-
It("should return no error and return false for needsUpdate if a finalizer is not registered", func() {
69-
ret, err := finalizers.Finalize(context.TODO(), pod)
70-
Expect(err).To(BeNil())
71-
Expect(ret).To(BeFalse())
72-
})
73-
7460
It("successfully finalizes and returns true for needsUpdate when deletion timestamp is nil and finalizer does not exist", func() {
7561
err = finalizers.Register("finalizers.sigs.k8s.io/testfinalizer", f)
7662
Expect(err).To(BeNil())
@@ -81,6 +67,10 @@ var _ = Describe("TestFinalizer", func() {
8167
needsUpdate, err := finalizers.Finalize(context.TODO(), pod)
8268
Expect(err).To(BeNil())
8369
Expect(needsUpdate).To(BeTrue())
70+
// when deletion timestamp is nil and finalizer is not present, the registered finalizer would be added to the obj
71+
Expect(len(pod.Finalizers)).To(Equal(1))
72+
Expect(pod.Finalizers[0]).To(Equal("finalizers.sigs.k8s.io/testfinalizer"))
73+
8474
})
8575

8676
It("successfully finalizes and returns true for needsUpdate when deletion timestamp is not nil and the finalizer exists", func() {
@@ -95,6 +85,8 @@ var _ = Describe("TestFinalizer", func() {
9585
needsUpdate, err := finalizers.Finalize(context.TODO(), pod)
9686
Expect(err).To(BeNil())
9787
Expect(needsUpdate).To(BeTrue())
88+
// finalizer will be removed from the obj upon successful finalization
89+
Expect(len(pod.Finalizers)).To(Equal(0))
9890
})
9991

10092
It("should return no error and return false for needsUpdate when deletion timestamp is nil and finalizer doesn't exist", func() {
@@ -104,6 +96,8 @@ var _ = Describe("TestFinalizer", func() {
10496
needsUpdate, err := finalizers.Finalize(context.TODO(), pod)
10597
Expect(err).To(BeNil())
10698
Expect(needsUpdate).To(BeFalse())
99+
Expect(len(pod.Finalizers)).To(Equal(0))
100+
107101
})
108102

109103
It("should return no error and return false for needsUpdate when deletion timestamp is not nil and the finalizer doesn't exist", func() {
@@ -114,6 +108,7 @@ var _ = Describe("TestFinalizer", func() {
114108
needsUpdate, err := finalizers.Finalize(context.TODO(), pod)
115109
Expect(err).To(BeNil())
116110
Expect(needsUpdate).To(BeFalse())
111+
Expect(len(pod.Finalizers)).To(Equal(0))
117112

118113
})
119114

@@ -132,6 +127,7 @@ var _ = Describe("TestFinalizer", func() {
132127
needsUpdate, err := finalizers.Finalize(context.TODO(), pod)
133128
Expect(err).To(BeNil())
134129
Expect(needsUpdate).To(BeTrue())
130+
Expect(len(pod.Finalizers)).To(Equal(0))
135131
})
136132

137133
It("should return needsUpdate as false and a non-nil error", func() {
@@ -149,6 +145,8 @@ var _ = Describe("TestFinalizer", func() {
149145
Expect(err).ToNot(BeNil())
150146
Expect(err.Error()).To(ContainSubstring("finalizer failed"))
151147
Expect(needsUpdate).To(BeFalse())
148+
Expect(len(pod.Finalizers)).To(Equal(1))
149+
Expect(pod.Finalizers[0]).To(Equal("finalizers.sigs.k8s.io/testfinalizer"))
152150
})
153151

154152
It("should return expected needsUpdate and error values when registering multiple finalizers", func() {
@@ -170,6 +168,11 @@ var _ = Describe("TestFinalizer", func() {
170168
result, err := finalizers.Finalize(context.TODO(), pod)
171169
Expect(err).To(BeNil())
172170
Expect(result).To(BeTrue())
171+
// `finalizers.sigs.k8s.io/testfinalizer1` will be removed from the list
172+
// of finalizers, so length will be 2.
173+
Expect(len(pod.Finalizers)).To(Equal(2))
174+
Expect(pod.Finalizers[0]).To(Equal("finalizers.sigs.k8s.io/testfinalizer2"))
175+
Expect(pod.Finalizers[1]).To(Equal("finalizers.sigs.k8s.io/testfinalizer3"))
173176

174177
// test for needsUpdate as false, and non-nil error
175178
f.needsUpdate = false
@@ -181,6 +184,9 @@ var _ = Describe("TestFinalizer", func() {
181184
Expect(err).ToNot(BeNil())
182185
Expect(err.Error()).To(ContainSubstring("finalizer failed"))
183186
Expect(result).To(BeFalse())
187+
Expect(len(pod.Finalizers)).To(Equal(2))
188+
Expect(pod.Finalizers[0]).To(Equal("finalizers.sigs.k8s.io/testfinalizer2"))
189+
Expect(pod.Finalizers[1]).To(Equal("finalizers.sigs.k8s.io/testfinalizer3"))
184190

185191
// test for needsUpdate as true, and non-nil error
186192
f.needsUpdate = true
@@ -192,6 +198,9 @@ var _ = Describe("TestFinalizer", func() {
192198
Expect(err).ToNot(BeNil())
193199
Expect(err.Error()).To(ContainSubstring("finalizer failed"))
194200
Expect(result).To(BeTrue())
201+
Expect(len(pod.Finalizers)).To(Equal(2))
202+
Expect(pod.Finalizers[0]).To(Equal("finalizers.sigs.k8s.io/testfinalizer2"))
203+
Expect(pod.Finalizers[1]).To(Equal("finalizers.sigs.k8s.io/testfinalizer3"))
195204
})
196205
})
197206
})

0 commit comments

Comments
 (0)