@@ -19,12 +19,16 @@ package storage
19
19
import (
20
20
"testing"
21
21
22
+ "github.com/google/go-cmp/cmp"
23
+ apiequality "k8s.io/apimachinery/pkg/api/equality"
22
24
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23
25
"k8s.io/apimachinery/pkg/fields"
24
26
"k8s.io/apimachinery/pkg/labels"
25
27
"k8s.io/apimachinery/pkg/runtime"
28
+ genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
26
29
"k8s.io/apiserver/pkg/registry/generic"
27
30
genericregistrytest "k8s.io/apiserver/pkg/registry/generic/testing"
31
+ "k8s.io/apiserver/pkg/registry/rest"
28
32
etcd3testing "k8s.io/apiserver/pkg/storage/etcd3/testing"
29
33
podtest "k8s.io/kubernetes/pkg/api/pod/testing"
30
34
"k8s.io/kubernetes/pkg/apis/apps"
@@ -179,12 +183,40 @@ func TestWatch(t *testing.T) {
179
183
)
180
184
}
181
185
186
+ func TestUpdateStatus (t * testing.T ) {
187
+ storage , statusStorage , server := newStorage (t )
188
+ defer server .Terminate (t )
189
+ defer storage .Store .DestroyFunc ()
190
+
191
+ dsStart := newValidDaemonSet ()
192
+ ctx := genericapirequest .WithNamespace (genericapirequest .NewDefaultContext (), dsStart .Namespace )
193
+ key , _ := storage .KeyFunc (ctx , dsStart .Name )
194
+ err := storage .Storage .Create (ctx , key , dsStart , nil , 0 , false )
195
+ if err != nil {
196
+ t .Fatalf ("Unexpected error: %v" , err )
197
+ }
198
+
199
+ ds := dsStart .DeepCopy ()
200
+ ds .Status .ObservedGeneration = 1
201
+ _ , _ , err = statusStorage .Update (ctx , ds .Name , rest .DefaultUpdatedObjectInfo (ds ), rest .ValidateAllObjectFunc , rest .ValidateAllObjectUpdateFunc , false , & metav1.UpdateOptions {})
202
+ if err != nil {
203
+ t .Fatalf ("Unexpected error: %v" , err )
204
+ }
205
+ obj , err := storage .Get (ctx , ds .Name , & metav1.GetOptions {})
206
+ if err != nil {
207
+ t .Errorf ("unexpected error: %v" , err )
208
+ }
209
+ dsOut := obj .(* apps.DaemonSet )
210
+ // only compare relevant changes b/c of difference in metadata
211
+ if ! apiequality .Semantic .DeepEqual (ds .Status , dsOut .Status ) {
212
+ t .Errorf ("unexpected object: %s" , cmp .Diff (ds .Status , dsOut .Status ))
213
+ }
214
+ }
215
+
182
216
func TestShortNames (t * testing.T ) {
183
217
storage , _ , server := newStorage (t )
184
218
defer server .Terminate (t )
185
219
defer storage .Store .DestroyFunc ()
186
220
expected := []string {"ds" }
187
221
registrytest .AssertShortNames (t , storage , expected )
188
222
}
189
-
190
- // TODO TestUpdateStatus
0 commit comments