@@ -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