MCPcopy Index your code
hub / github.com/aws/aws-node-termination-handler / TestDrainSuccess

Function TestDrainSuccess

pkg/node/node_test.go:124–171  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

122}
123
124func TestDrainSuccess(t *testing.T) {
125 isOwnerController := true
126 client := fake.NewSimpleClientset()
127 _, err := client.CoreV1().Nodes().Create(
128 context.Background(),
129 &v1.Node{
130 ObjectMeta: metav1.ObjectMeta{Name: nodeName},
131 },
132 metav1.CreateOptions{})
133 h.Ok(t, err)
134
135 _, err = client.CoreV1().Pods("default").Create(
136 context.Background(),
137 &v1.Pod{
138 ObjectMeta: metav1.ObjectMeta{
139 GenerateName: "cool-app-pod-",
140 OwnerReferences: []metav1.OwnerReference{
141 {
142 APIVersion: "apps/v1",
143 Name: "cool-app",
144 Kind: "ReplicaSet",
145 Controller: &isOwnerController,
146 },
147 },
148 },
149 Spec: v1.PodSpec{
150 NodeName: nodeName,
151 },
152 },
153 metav1.CreateOptions{})
154 h.Ok(t, err)
155
156 fakeRecorder := record.NewFakeRecorder(recorderBufferSize)
157
158 drainHelper := getDrainHelper(client)
159 drainHelper.DisableEviction = true
160 tNode := getNode(t, drainHelper)
161 err = tNode.CordonAndDrain(nodeName, "cordonReason", fakeRecorder)
162 close(fakeRecorder.Events)
163 h.Ok(t, err)
164 expectedEventArrived := false
165 for event := range fakeRecorder.Events {
166 if strings.Contains(event, "Normal PodEviction Pod evicted due to node drain") {
167 expectedEventArrived = true
168 }
169 }
170 h.Assert(t, expectedEventArrived, "PodEvicted event was not emitted")
171}
172
173func TestDrainCordonNodeFailure(t *testing.T) {
174 fakeRecorder := record.NewFakeRecorder(recorderBufferSize)

Callers

nothing calls this directly

Calls 3

CordonAndDrainMethod · 0.80
getDrainHelperFunction · 0.70
getNodeFunction · 0.70

Tested by

no test coverage detected