@@ -34,18 +34,10 @@ var _ = Describe("TestFinalizer", func() {
34
34
var f mockFinalizer
35
35
BeforeEach (func () {
36
36
pod = & corev1.Pod {
37
- ObjectMeta : metav1.ObjectMeta {
38
- Finalizers : []string {"finalizers.sigs.k8s.io/testfinalizer" },
39
- },
37
+ ObjectMeta : metav1.ObjectMeta {},
40
38
}
41
- Expect (pod ).NotTo (BeNil ())
42
-
43
39
finalizers = NewFinalizers ()
44
- Expect (finalizers ).NotTo (BeNil ())
45
-
46
- f := mockFinalizer {}
47
- Expect (f ).NotTo (BeNil ())
48
-
40
+ f = mockFinalizer {}
49
41
})
50
42
Describe ("Register" , func () {
51
43
It ("successfully registers a finalizer" , func () {
@@ -65,12 +57,6 @@ var _ = Describe("TestFinalizer", func() {
65
57
})
66
58
})
67
59
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
-
74
60
It ("successfully finalizes and returns true for needsUpdate when deletion timestamp is nil and finalizer does not exist" , func () {
75
61
err = finalizers .Register ("finalizers.sigs.k8s.io/testfinalizer" , f )
76
62
Expect (err ).To (BeNil ())
@@ -81,6 +67,10 @@ var _ = Describe("TestFinalizer", func() {
81
67
needsUpdate , err := finalizers .Finalize (context .TODO (), pod )
82
68
Expect (err ).To (BeNil ())
83
69
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
+
84
74
})
85
75
86
76
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() {
95
85
needsUpdate , err := finalizers .Finalize (context .TODO (), pod )
96
86
Expect (err ).To (BeNil ())
97
87
Expect (needsUpdate ).To (BeTrue ())
88
+ // finalizer will be removed from the obj upon successful finalization
89
+ Expect (len (pod .Finalizers )).To (Equal (0 ))
98
90
})
99
91
100
92
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() {
104
96
needsUpdate , err := finalizers .Finalize (context .TODO (), pod )
105
97
Expect (err ).To (BeNil ())
106
98
Expect (needsUpdate ).To (BeFalse ())
99
+ Expect (len (pod .Finalizers )).To (Equal (0 ))
100
+
107
101
})
108
102
109
103
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() {
114
108
needsUpdate , err := finalizers .Finalize (context .TODO (), pod )
115
109
Expect (err ).To (BeNil ())
116
110
Expect (needsUpdate ).To (BeFalse ())
111
+ Expect (len (pod .Finalizers )).To (Equal (0 ))
117
112
118
113
})
119
114
@@ -132,6 +127,7 @@ var _ = Describe("TestFinalizer", func() {
132
127
needsUpdate , err := finalizers .Finalize (context .TODO (), pod )
133
128
Expect (err ).To (BeNil ())
134
129
Expect (needsUpdate ).To (BeTrue ())
130
+ Expect (len (pod .Finalizers )).To (Equal (0 ))
135
131
})
136
132
137
133
It ("should return needsUpdate as false and a non-nil error" , func () {
@@ -149,6 +145,8 @@ var _ = Describe("TestFinalizer", func() {
149
145
Expect (err ).ToNot (BeNil ())
150
146
Expect (err .Error ()).To (ContainSubstring ("finalizer failed" ))
151
147
Expect (needsUpdate ).To (BeFalse ())
148
+ Expect (len (pod .Finalizers )).To (Equal (1 ))
149
+ Expect (pod .Finalizers [0 ]).To (Equal ("finalizers.sigs.k8s.io/testfinalizer" ))
152
150
})
153
151
154
152
It ("should return expected needsUpdate and error values when registering multiple finalizers" , func () {
@@ -170,6 +168,11 @@ var _ = Describe("TestFinalizer", func() {
170
168
result , err := finalizers .Finalize (context .TODO (), pod )
171
169
Expect (err ).To (BeNil ())
172
170
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" ))
173
176
174
177
// test for needsUpdate as false, and non-nil error
175
178
f .needsUpdate = false
@@ -181,6 +184,9 @@ var _ = Describe("TestFinalizer", func() {
181
184
Expect (err ).ToNot (BeNil ())
182
185
Expect (err .Error ()).To (ContainSubstring ("finalizer failed" ))
183
186
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" ))
184
190
185
191
// test for needsUpdate as true, and non-nil error
186
192
f .needsUpdate = true
@@ -192,6 +198,9 @@ var _ = Describe("TestFinalizer", func() {
192
198
Expect (err ).ToNot (BeNil ())
193
199
Expect (err .Error ()).To (ContainSubstring ("finalizer failed" ))
194
200
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" ))
195
204
})
196
205
})
197
206
})
0 commit comments