Skip to content

Commit 3b69780

Browse files
authored
Merge pull request kubernetes#121897 from carlory/ds-registry-test
daemonset registry: add unit test for UpdateStatus
2 parents 154b756 + 3475c3e commit 3b69780

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
podtest "k8s.io/kubernetes/pkg/api/pod/testing"
3034
"k8s.io/kubernetes/pkg/apis/apps"
@@ -179,12 +183,40 @@ func TestWatch(t *testing.T) {
179183
)
180184
}
181185

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+
182216
func TestShortNames(t *testing.T) {
183217
storage, _, server := newStorage(t)
184218
defer server.Terminate(t)
185219
defer storage.Store.DestroyFunc()
186220
expected := []string{"ds"}
187221
registrytest.AssertShortNames(t, storage, expected)
188222
}
189-
190-
// TODO TestUpdateStatus

0 commit comments

Comments
 (0)