Skip to content

Commit fa5e43d

Browse files
committed
update some tests
Signed-off-by: Ajay Mishra <ajmishra@nvidia.com>
1 parent 45a5f73 commit fa5e43d

2 files changed

Lines changed: 21 additions & 12 deletions

File tree

node-drainer/pkg/informers/informers_test.go

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,11 @@ import (
2424
"k8s.io/apimachinery/pkg/api/resource"
2525
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2626
"k8s.io/apimachinery/pkg/types"
27+
"k8s.io/client-go/kubernetes"
2728
"k8s.io/client-go/kubernetes/fake"
2829
"k8s.io/client-go/tools/cache"
2930
"k8s.io/utils/ptr"
31+
"sigs.k8s.io/controller-runtime/pkg/envtest"
3032

3133
"github.com/nvidia/nvsentinel/data-models/pkg/model"
3234
"github.com/nvidia/nvsentinel/fault-quarantine/pkg/common"
@@ -249,13 +251,18 @@ func TestEventRecorderAggregatesNodeEvents(t *testing.T) {
249251
ctx, cancel := context.WithCancel(t.Context())
250252
defer cancel()
251253

252-
node := &v1.Node{
253-
ObjectMeta: metav1.ObjectMeta{
254-
Name: "node-a",
255-
UID: types.UID("node-uid"),
256-
},
257-
}
258-
client := fake.NewSimpleClientset(node)
254+
testEnv := envtest.Environment{}
255+
cfg, err := testEnv.Start()
256+
require.NoError(t, err)
257+
t.Cleanup(func() { require.NoError(t, testEnv.Stop()) })
258+
259+
client, err := kubernetes.NewForConfig(cfg)
260+
require.NoError(t, err)
261+
node, err := client.CoreV1().Nodes().Create(ctx, &v1.Node{
262+
ObjectMeta: metav1.ObjectMeta{Name: "node-a"},
263+
}, metav1.CreateOptions{})
264+
require.NoError(t, err)
265+
259266
informers, err := NewInformers(client, 0, ptr.To(5), false, false, "")
260267
require.NoError(t, err)
261268
require.NoError(t, informers.Run(ctx))

node-drainer/pkg/reconciler/reconciler_integration_test.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,7 @@ func TestReconciler_ProcessEvent(t *testing.T) {
504504
assert.Error(t, err)
505505
assert.Contains(t, err.Error(), "waiting for pods to complete")
506506

507-
nodeEvent := requireSingleNodeEvent(t, client, ctx, nodeName)
507+
nodeEvent := requireSingleNodeEvent(t, client, ctx, nodeName, 5)
508508
require.Equal(t, v1.EventTypeNormal, nodeEvent.Type)
509509
require.Equal(t, "AwaitingPodCompletion", nodeEvent.Reason)
510510
expectedMessage := "Waiting for following pods to finish: [completion-test/running-pod-1]"
@@ -660,7 +660,7 @@ func TestReconciler_ProcessEvent(t *testing.T) {
660660
assert.Error(t, err)
661661
assert.Contains(t, err.Error(), "failed timeout eviction for node test-node: waiting for 1 pods to complete or timeout")
662662

663-
nodeEvent := requireSingleNodeEvent(t, client, ctx, nodeName)
663+
nodeEvent := requireSingleNodeEvent(t, client, ctx, nodeName, 1)
664664
require.Equal(t, v1.EventTypeNormal, nodeEvent.Type)
665665
require.Equal(t, "WaitingBeforeForceDelete", nodeEvent.Reason)
666666
expectedMessage := "Waiting for following pods to finish: [pod-1] in namespace: [timeout-test] or they will be force deleted on:"
@@ -890,7 +890,7 @@ func TestReconciler_ProcessEvent(t *testing.T) {
890890
assert.Error(t, err)
891891
assert.Contains(t, err.Error(), "waiting for pods to complete")
892892

893-
nodeEvent := requireSingleNodeEvent(t, client, ctx, nodeName)
893+
nodeEvent := requireSingleNodeEvent(t, client, ctx, nodeName, 5)
894894
require.Equal(t, v1.EventTypeNormal, nodeEvent.Type)
895895
require.Equal(t, "AwaitingPodCompletion", nodeEvent.Reason)
896896
expectedMessage := "Waiting for following pods to finish: [completion-test/running-pod-1 completion-test/running-pod-2 completion-test/running-pod-3]"
@@ -1396,6 +1396,7 @@ func requireSingleNodeEvent(
13961396
client kubernetes.Interface,
13971397
ctx context.Context,
13981398
nodeName string,
1399+
expectedCount int32,
13991400
) v1.Event {
14001401
t.Helper()
14011402

@@ -1404,12 +1405,13 @@ func requireSingleNodeEvent(
14041405
}
14051406
require.Eventually(t, func() bool {
14061407
nodeEvents, err := client.CoreV1().Events(metav1.NamespaceDefault).List(ctx, eventListOptions)
1407-
return err == nil && len(nodeEvents.Items) == 1
1408-
}, 5*time.Second, 50*time.Millisecond, "node event should be recorded asynchronously")
1408+
return err == nil && len(nodeEvents.Items) == 1 && nodeEvents.Items[0].Count == expectedCount
1409+
}, 5*time.Second, 50*time.Millisecond, "node event should be recorded asynchronously with count %d", expectedCount)
14091410

14101411
nodeEvents, err := client.CoreV1().Events(metav1.NamespaceDefault).List(ctx, eventListOptions)
14111412
require.NoError(t, err)
14121413
require.Len(t, nodeEvents.Items, 1, "only one event should be created despite multiple reconciliations")
1414+
require.Equal(t, expectedCount, nodeEvents.Items[0].Count)
14131415

14141416
return nodeEvents.Items[0]
14151417
}

0 commit comments

Comments
 (0)