mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	Merge pull request #121898 from carlory/ing-registry-test
ingress registry: add unit test for UpdateStatus
This commit is contained in:
		@@ -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
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user