add TestUpdateStatus for horizontalpodautoscaler

pull/6/head
lcfang 2018-02-24 16:44:09 +08:00
parent cd78e999f9
commit e4099fa544
1 changed files with 39 additions and 1 deletions

View File

@ -19,6 +19,7 @@ package storage
import ( import (
"testing" "testing"
apiequality "k8s.io/apimachinery/pkg/api/equality"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/kubernetes/pkg/apis/autoscaling" "k8s.io/kubernetes/pkg/apis/autoscaling"
api "k8s.io/kubernetes/pkg/apis/core" api "k8s.io/kubernetes/pkg/apis/core"
@ -27,8 +28,11 @@ import (
"k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/fields"
"k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/diff"
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/generic"
genericregistrytest "k8s.io/apiserver/pkg/registry/generic/testing" genericregistrytest "k8s.io/apiserver/pkg/registry/generic/testing"
"k8s.io/apiserver/pkg/registry/rest"
etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing"
"k8s.io/kubernetes/pkg/registry/registrytest" "k8s.io/kubernetes/pkg/registry/registrytest"
) )
@ -166,4 +170,38 @@ func TestCategories(t *testing.T) {
registrytest.AssertCategories(t, storage, expected) registrytest.AssertCategories(t, storage, expected)
} }
// TODO TestUpdateStatus func TestUpdateStatus(t *testing.T) {
storage, statusStorage, server := newStorage(t)
defer server.Terminate(t)
defer storage.Store.DestroyFunc()
ctx := genericapirequest.NewDefaultContext()
key, _ := storage.KeyFunc(ctx, "foo")
autoscalerStart := validNewHorizontalPodAutoscaler("foo")
err := storage.Storage.Create(ctx, key, autoscalerStart, nil, 0)
if err != nil {
t.Errorf("unexpected error: %v", err)
}
autoscalerIn := &autoscaling.HorizontalPodAutoscaler{
ObjectMeta: metav1.ObjectMeta{
Name: "foo",
Namespace: metav1.NamespaceDefault,
},
Status: autoscaling.HorizontalPodAutoscalerStatus{
Conditions: []autoscaling.HorizontalPodAutoscalerCondition{
{Status: "True"},
},
},
}
_, _, err = statusStorage.Update(ctx, autoscalerIn.Name, rest.DefaultUpdatedObjectInfo(autoscalerIn), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc)
if err != nil {
t.Fatalf("Unexpected error: %v", err)
}
obj, err := storage.Get(ctx, "foo", &metav1.GetOptions{})
autosclaerOut := obj.(*autoscaling.HorizontalPodAutoscaler)
// only compare the meaningful update b/c we can't compare due to metadata
if !apiequality.Semantic.DeepEqual(autoscalerIn.Status, autosclaerOut.Status) {
t.Errorf("unexpected object: %s", diff.ObjectDiff(autoscalerIn, autosclaerOut))
}
}