Skip to content

Commit 3475c3e

Browse files
committed
daemonset registry: add unit test for UpdateStatus
1 parent 7b1c378 commit 3475c3e

File tree

1 file changed

+34
-2
lines changed

1 file changed

+34
-2
lines changed

pkg/registry/apps/daemonset/storage/storage_test.go

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,16 @@ package storage
1919
import (
2020
"testing"
2121

22+
"github.com/google/go-cmp/cmp"
23+
apiequality "k8s.io/apimachinery/pkg/api/equality"
2224
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2325
"k8s.io/apimachinery/pkg/fields"
2426
"k8s.io/apimachinery/pkg/labels"
2527
"k8s.io/apimachinery/pkg/runtime"
28+
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
2629
"k8s.io/apiserver/pkg/registry/generic"
2730
genericregistrytest "k8s.io/apiserver/pkg/registry/generic/testing"
31+
"k8s.io/apiserver/pkg/registry/rest"
2832
etcd3testing "k8s.io/apiserver/pkg/storage/etcd3/testing"
2933
"k8s.io/kubernetes/pkg/apis/apps"
3034
api "k8s.io/kubernetes/pkg/apis/core"
@@ -189,12 +193,40 @@ func TestWatch(t *testing.T) {
189193
)
190194
}
191195

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+
192226
func TestShortNames(t *testing.T) {
193227
storage, _, server := newStorage(t)
194228
defer server.Terminate(t)
195229
defer storage.Store.DestroyFunc()
196230
expected := []string{"ds"}
197231
registrytest.AssertShortNames(t, storage, expected)
198232
}
199-
200-
// TODO TestUpdateStatus

0 commit comments

Comments
 (0)