From e4099fa544c90294171f4dbee612b3dac40f9cc3 Mon Sep 17 00:00:00 2001 From: lcfang Date: Sat, 24 Feb 2018 16:44:09 +0800 Subject: [PATCH] add TestUpdateStatus for horizontalpodautoscaler --- .../storage/storage_test.go | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage_test.go b/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage_test.go index eb803bf71f..774e0e0933 100644 --- a/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage_test.go +++ b/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage_test.go @@ -19,6 +19,7 @@ package storage import ( "testing" + apiequality "k8s.io/apimachinery/pkg/api/equality" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/apis/autoscaling" api "k8s.io/kubernetes/pkg/apis/core" @@ -27,8 +28,11 @@ import ( "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/diff" + genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/generic" genericregistrytest "k8s.io/apiserver/pkg/registry/generic/testing" + "k8s.io/apiserver/pkg/registry/rest" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" "k8s.io/kubernetes/pkg/registry/registrytest" ) @@ -166,4 +170,38 @@ func TestCategories(t *testing.T) { 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)) + } +}