From 741aa4898e4af6cc89359a9edc14962ae6c0c9e7 Mon Sep 17 00:00:00 2001 From: Marcin Wielgus Date: Tue, 22 Nov 2016 17:00:36 +0100 Subject: [PATCH] Enable update unit test in federated daemonset controller --- .../daemonset/daemonset_controller_test.go | 63 +++++++++---------- 1 file changed, 28 insertions(+), 35 deletions(-) diff --git a/federation/pkg/federation-controller/daemonset/daemonset_controller_test.go b/federation/pkg/federation-controller/daemonset/daemonset_controller_test.go index 31c3dc3890f..9acdb42a7f9 100644 --- a/federation/pkg/federation-controller/daemonset/daemonset_controller_test.go +++ b/federation/pkg/federation-controller/daemonset/daemonset_controller_test.go @@ -25,7 +25,7 @@ import ( federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" fakefedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5/fake" "k8s.io/kubernetes/federation/pkg/federation-controller/util" - //"k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper" + "k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper" . "k8s.io/kubernetes/federation/pkg/federation-controller/util/test" "k8s.io/kubernetes/pkg/api/unversioned" apiv1 "k8s.io/kubernetes/pkg/api/v1" @@ -46,14 +46,14 @@ func TestDaemonSetController(t *testing.T) { RegisterFakeList("clusters", &fakeClient.Fake, &federationapi.ClusterList{Items: []federationapi.Cluster{*cluster1}}) RegisterFakeList("daemonsets", &fakeClient.Fake, &extensionsv1.DaemonSetList{Items: []extensionsv1.DaemonSet{}}) daemonsetWatch := RegisterFakeWatch("daemonsets", &fakeClient.Fake) - // daemonsetUpdateChan := RegisterFakeCopyOnUpdate("daemonsets", &fakeClient.Fake, daemonsetWatch) + daemonsetUpdateChan := RegisterFakeCopyOnUpdate("daemonsets", &fakeClient.Fake, daemonsetWatch) clusterWatch := RegisterFakeWatch("clusters", &fakeClient.Fake) cluster1Client := &fakekubeclientset.Clientset{} cluster1Watch := RegisterFakeWatch("daemonsets", &cluster1Client.Fake) RegisterFakeList("daemonsets", &cluster1Client.Fake, &extensionsv1.DaemonSetList{Items: []extensionsv1.DaemonSet{}}) cluster1CreateChan := RegisterFakeCopyOnCreate("daemonsets", &cluster1Client.Fake, cluster1Watch) - // cluster1UpdateChan := RegisterFakeCopyOnUpdate("daemonsets", &cluster1Client.Fake, cluster1Watch) + cluster1UpdateChan := RegisterFakeCopyOnUpdate("daemonsets", &cluster1Client.Fake, cluster1Watch) cluster2Client := &fakekubeclientset.Clientset{} cluster2Watch := RegisterFakeWatch("daemonsets", &cluster2Client.Fake) @@ -96,15 +96,14 @@ func TestDaemonSetController(t *testing.T) { // Test add federated daemonset. daemonsetWatch.Add(&daemonset1) - /* - // TODO: Re-enable this when we have fixed these flaky tests: https://github.com/kubernetes/kubernetes/issues/36540. - // There should be 2 updates to add both the finalizers. - updatedDaemonSet := GetDaemonSetFromChan(daemonsetUpdateChan) - assert.True(t, daemonsetController.hasFinalizerFunc(updatedDaemonSet, deletionhelper.FinalizerDeleteFromUnderlyingClusters)) - updatedDaemonSet = GetDaemonSetFromChan(daemonsetUpdateChan) - assert.True(t, daemonsetController.hasFinalizerFunc(updatedDaemonSet, apiv1.FinalizerOrphan)) - daemonset1 = *updatedDaemonSet - */ + + // There should be 2 updates to add both the finalizers. + updatedDaemonSet := GetDaemonSetFromChan(daemonsetUpdateChan) + assert.True(t, daemonsetController.hasFinalizerFunc(updatedDaemonSet, deletionhelper.FinalizerDeleteFromUnderlyingClusters)) + updatedDaemonSet = GetDaemonSetFromChan(daemonsetUpdateChan) + assert.True(t, daemonsetController.hasFinalizerFunc(updatedDaemonSet, apiv1.FinalizerOrphan)) + daemonset1 = *updatedDaemonSet + createdDaemonSet := GetDaemonSetFromChan(cluster1CreateChan) assert.NotNil(t, createdDaemonSet) assert.Equal(t, daemonset1.Namespace, createdDaemonSet.Namespace) @@ -118,30 +117,24 @@ func TestDaemonSetController(t *testing.T) { cluster1.Name, getDaemonSetKey(daemonset1.Namespace, daemonset1.Name), wait.ForeverTestTimeout) assert.Nil(t, err, "daemonset should have appeared in the informer store") - /* - // TODO: Re-enable this when we have fixed these flaky tests: https://github.com/kubernetes/kubernetes/issues/36540. - // Test update federated daemonset. - daemonset1.Annotations = map[string]string{ - "A": "B", - } - daemonsetWatch.Modify(&daemonset1) - updatedDaemonSet = GetDaemonSetFromChan(cluster1UpdateChan) - assert.NotNil(t, updatedDaemonSet) - assert.Equal(t, daemonset1.Name, updatedDaemonSet.Name) - assert.Equal(t, daemonset1.Namespace, updatedDaemonSet.Namespace) - assert.True(t, daemonsetsEqual(daemonset1, *updatedDaemonSet), - fmt.Sprintf("expected: %v, actual: %v", daemonset1, *updatedDaemonSet)) + // TODO: Re-enable this when we have fixed these flaky tests: https://github.com/kubernetes/kubernetes/issues/36540. + // Test update federated daemonset. + daemonset1.Annotations = map[string]string{ + "A": "B", + } + daemonsetWatch.Modify(&daemonset1) + updatedDaemonSet = GetDaemonSetFromChan(cluster1UpdateChan) + assert.NotNil(t, updatedDaemonSet) + assert.Equal(t, daemonset1.Name, updatedDaemonSet.Name) + assert.Equal(t, daemonset1.Namespace, updatedDaemonSet.Namespace) + assert.True(t, daemonsetsEqual(daemonset1, *updatedDaemonSet), + fmt.Sprintf("expected: %v, actual: %v", daemonset1, *updatedDaemonSet)) - // Test update federated daemonset. - daemonset1.Spec.Template.Name = "TEST" - daemonsetWatch.Modify(&daemonset1) - updatedDaemonSet = GetDaemonSetFromChan(cluster1UpdateChan) - assert.NotNil(t, updatedDaemonSet) - assert.Equal(t, daemonset1.Name, updatedDaemonSet.Name) - assert.Equal(t, daemonset1.Namespace, updatedDaemonSet.Namespace) - assert.True(t, daemonsetsEqual(daemonset1, *updatedDaemonSet), - fmt.Sprintf("expected: %v, actual: %v", daemonset1, *updatedDaemonSet)) - */ + // Test update federated daemonset. + daemonset1.Spec.Template.Name = "TEST" + daemonsetWatch.Modify(&daemonset1) + err = CheckObjectFromChan(cluster1UpdateChan, MetaAndSpecCheckingFunction(&daemonset1)) + assert.NoError(t, err) // Test add cluster clusterWatch.Add(cluster2)