@@ -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
"k8s.io/kubernetes/pkg/apis/apps"
30
34
api "k8s.io/kubernetes/pkg/apis/core"
@@ -189,12 +193,40 @@ func TestWatch(t *testing.T) {
189
193
)
190
194
}
191
195
196
+ func TestUpdateStatus (t * testing.T ) {
197
+ storage , statusStorage , server := newStorage (t )
198
+ defer server .Terminate (t )
199
+ defer storage .Store .DestroyFunc ()
200
+
201
+ dsStart := newValidDaemonSet ()
202
+ ctx := genericapirequest .WithNamespace (genericapirequest .NewDefaultContext (), dsStart .Namespace )
203
+ key , _ := storage .KeyFunc (ctx , dsStart .Name )
204
+ err := storage .Storage .Create (ctx , key , dsStart , nil , 0 , false )
205
+ if err != nil {
206
+ t .Fatalf ("Unexpected error: %v" , err )
207
+ }
208
+
209
+ ds := dsStart .DeepCopy ()
210
+ ds .Status .ObservedGeneration = 1
211
+ _ , _ , err = statusStorage .Update (ctx , ds .Name , rest .DefaultUpdatedObjectInfo (ds ), rest .ValidateAllObjectFunc , rest .ValidateAllObjectUpdateFunc , false , & metav1.UpdateOptions {})
212
+ if err != nil {
213
+ t .Fatalf ("Unexpected error: %v" , err )
214
+ }
215
+ obj , err := storage .Get (ctx , ds .Name , & metav1.GetOptions {})
216
+ if err != nil {
217
+ t .Errorf ("unexpected error: %v" , err )
218
+ }
219
+ dsOut := obj .(* apps.DaemonSet )
220
+ // only compare relevant changes b/c of difference in metadata
221
+ if ! apiequality .Semantic .DeepEqual (ds .Status , dsOut .Status ) {
222
+ t .Errorf ("unexpected object: %s" , cmp .Diff (ds .Status , dsOut .Status ))
223
+ }
224
+ }
225
+
192
226
func TestShortNames (t * testing.T ) {
193
227
storage , _ , server := newStorage (t )
194
228
defer server .Terminate (t )
195
229
defer storage .Store .DestroyFunc ()
196
230
expected := []string {"ds" }
197
231
registrytest .AssertShortNames (t , storage , expected )
198
232
}
199
-
200
- // TODO TestUpdateStatus
0 commit comments