mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-04 18:00:08 +00:00
Merge pull request #121898 from carlory/ing-registry-test
ingress registry: add unit test for UpdateStatus
This commit is contained in:
commit
a2abca11ff
@ -19,13 +19,17 @@ package storage
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
|
"github.com/google/go-cmp/cmp"
|
||||||
|
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/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/intstr"
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
|
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"
|
||||||
etcd3testing "k8s.io/apiserver/pkg/storage/etcd3/testing"
|
etcd3testing "k8s.io/apiserver/pkg/storage/etcd3/testing"
|
||||||
_ "k8s.io/kubernetes/pkg/apis/extensions/install"
|
_ "k8s.io/kubernetes/pkg/apis/extensions/install"
|
||||||
"k8s.io/kubernetes/pkg/apis/networking"
|
"k8s.io/kubernetes/pkg/apis/networking"
|
||||||
@ -49,7 +53,7 @@ func newStorage(t *testing.T) (*REST, *StatusREST, *etcd3testing.EtcdTestServer)
|
|||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
namespace = metav1.NamespaceNone
|
namespace = "test" // genericregistrytest.Tester hardcode namespace that will be used when creating contexts.
|
||||||
name = "foo-ingress"
|
name = "foo-ingress"
|
||||||
defaultHostname = "foo.bar.com"
|
defaultHostname = "foo.bar.com"
|
||||||
defaultBackendName = "default-backend"
|
defaultBackendName = "default-backend"
|
||||||
@ -242,6 +246,40 @@ func TestWatch(t *testing.T) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestUpdateStatus(t *testing.T) {
|
||||||
|
storage, statusStorage, server := newStorage(t)
|
||||||
|
defer server.Terminate(t)
|
||||||
|
defer storage.Store.DestroyFunc()
|
||||||
|
|
||||||
|
ingStart := validIngress()
|
||||||
|
ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), namespace)
|
||||||
|
key, _ := storage.KeyFunc(ctx, ingStart.Name)
|
||||||
|
err := storage.Storage.Create(ctx, key, ingStart, nil, 0, false)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Unexpected error: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
ing := ingStart.DeepCopy()
|
||||||
|
ing.Status.LoadBalancer.Ingress = []networking.IngressLoadBalancerIngress{
|
||||||
|
{
|
||||||
|
IP: defaultLoadBalancer,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
_, _, err = statusStorage.Update(ctx, ing.Name, rest.DefaultUpdatedObjectInfo(ing), rest.ValidateAllObjectFunc, rest.ValidateAllObjectUpdateFunc, false, &metav1.UpdateOptions{})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Unexpected error: %v", err)
|
||||||
|
}
|
||||||
|
obj, err := storage.Get(ctx, ing.Name, &metav1.GetOptions{})
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("unexpected error: %v", err)
|
||||||
|
}
|
||||||
|
ingOut := obj.(*networking.Ingress)
|
||||||
|
// only compare relevant changes b/c of difference in metadata
|
||||||
|
if !apiequality.Semantic.DeepEqual(ing.Status, ingOut.Status) {
|
||||||
|
t.Errorf("unexpected object: %s", cmp.Diff(ing.Status, ingOut.Status))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestShortNames(t *testing.T) {
|
func TestShortNames(t *testing.T) {
|
||||||
storage, _, server := newStorage(t)
|
storage, _, server := newStorage(t)
|
||||||
defer server.Terminate(t)
|
defer server.Terminate(t)
|
||||||
@ -249,5 +287,3 @@ func TestShortNames(t *testing.T) {
|
|||||||
expected := []string{"ing"}
|
expected := []string{"ing"}
|
||||||
registrytest.AssertShortNames(t, storage, expected)
|
registrytest.AssertShortNames(t, storage, expected)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO TestUpdateStatus
|
|
||||||
|
Loading…
Reference in New Issue
Block a user