|
|
|
|
@ -272,8 +272,7 @@ func getRuntimeObjFromManifests(t *testing.T, manifests []string) []runtime.Obje
|
|
|
|
|
objects := []runtime.Object{}
|
|
|
|
|
for _, manifest := range manifests {
|
|
|
|
|
m := make(map[string]any)
|
|
|
|
|
err := yaml.Unmarshal([]byte(manifest), &m)
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, yaml.Unmarshal([]byte(manifest), &m))
|
|
|
|
|
resource := &unstructured.Unstructured{Object: m}
|
|
|
|
|
objects = append(objects, resource)
|
|
|
|
|
}
|
|
|
|
|
@ -332,8 +331,7 @@ func TestStatusWaitForDelete(t *testing.T) {
|
|
|
|
|
for _, objToCreate := range objsToCreate {
|
|
|
|
|
u := objToCreate.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
objsToDelete := getRuntimeObjFromManifests(t, tt.manifestsToDelete)
|
|
|
|
|
for _, objToDelete := range objsToDelete {
|
|
|
|
|
@ -341,8 +339,7 @@ func TestStatusWaitForDelete(t *testing.T) {
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
go func(gvr schema.GroupVersionResource, u *unstructured.Unstructured) {
|
|
|
|
|
time.Sleep(timeUntilPodDelete)
|
|
|
|
|
err := fakeClient.Tracker().Delete(gvr, u.GetNamespace(), u.GetName())
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
assert.NoError(t, fakeClient.Tracker().Delete(gvr, u.GetNamespace(), u.GetName()))
|
|
|
|
|
}(gvr, u)
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objsToCreate)
|
|
|
|
|
@ -352,9 +349,9 @@ func TestStatusWaitForDelete(t *testing.T) {
|
|
|
|
|
for _, expectedErrStr := range tt.expectErrs {
|
|
|
|
|
require.ErrorContains(t, err, expectedErrStr)
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|
} else {
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
}
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -375,8 +372,7 @@ func TestStatusWaitForDeleteNonExistentObject(t *testing.T) {
|
|
|
|
|
// Don't create the object to test that the wait for delete works when the object doesn't exist
|
|
|
|
|
objManifest := getRuntimeObjFromManifests(t, []string{podCurrentManifest})
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objManifest)
|
|
|
|
|
err := statusWaiter.WaitForDelete(resourceList, timeout)
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
assert.NoError(t, statusWaiter.WaitForDelete(resourceList, timeout))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestStatusWait(t *testing.T) {
|
|
|
|
|
@ -433,8 +429,7 @@ func TestStatusWait(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
err := statusWaiter.Wait(resourceList, time.Second*3)
|
|
|
|
|
@ -443,9 +438,9 @@ func TestStatusWait(t *testing.T) {
|
|
|
|
|
for _, expectedErrStr := range tt.expectErrStrs {
|
|
|
|
|
require.ErrorContains(t, err, expectedErrStr)
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|
} else {
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
}
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -490,8 +485,7 @@ func TestWaitForJobComplete(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
err := statusWaiter.WaitWithJobs(resourceList, time.Second*3)
|
|
|
|
|
@ -500,9 +494,9 @@ func TestWaitForJobComplete(t *testing.T) {
|
|
|
|
|
for _, expectedErrStr := range tt.expectErrStrs {
|
|
|
|
|
require.ErrorContains(t, err, expectedErrStr)
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|
} else {
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
}
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -553,8 +547,7 @@ func TestWatchForReady(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
err := statusWaiter.WatchUntilReady(resourceList, time.Second*3)
|
|
|
|
|
@ -563,9 +556,9 @@ func TestWatchForReady(t *testing.T) {
|
|
|
|
|
for _, expectedErrStr := range tt.expectErrStrs {
|
|
|
|
|
require.ErrorContains(t, err, expectedErrStr)
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|
} else {
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
}
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -657,8 +650,7 @@ func TestStatusWaitMultipleNamespaces(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if strings.Contains(tt.name, "delete") {
|
|
|
|
|
@ -668,8 +660,7 @@ func TestStatusWaitMultipleNamespaces(t *testing.T) {
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
go func(gvr schema.GroupVersionResource, u *unstructured.Unstructured) {
|
|
|
|
|
time.Sleep(timeUntilDelete)
|
|
|
|
|
err := fakeClient.Tracker().Delete(gvr, u.GetNamespace(), u.GetName())
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
assert.NoError(t, fakeClient.Tracker().Delete(gvr, u.GetNamespace(), u.GetName()))
|
|
|
|
|
}(gvr, u)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -681,9 +672,9 @@ func TestStatusWaitMultipleNamespaces(t *testing.T) {
|
|
|
|
|
for _, expectedErrStr := range tt.expectErrStrs {
|
|
|
|
|
require.ErrorContains(t, err, expectedErrStr)
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|
} else {
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
}
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -839,8 +830,7 @@ func TestStatusWaitRestrictedRBAC(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := baseFakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, baseFakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if strings.Contains(tt.name, "delet") {
|
|
|
|
|
@ -850,8 +840,7 @@ func TestStatusWaitRestrictedRBAC(t *testing.T) {
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
go func(gvr schema.GroupVersionResource, u *unstructured.Unstructured) {
|
|
|
|
|
time.Sleep(timeUntilDelete)
|
|
|
|
|
err := baseFakeClient.Tracker().Delete(gvr, u.GetNamespace(), u.GetName())
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
assert.NoError(t, baseFakeClient.Tracker().Delete(gvr, u.GetNamespace(), u.GetName()))
|
|
|
|
|
}(gvr, u)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -863,10 +852,10 @@ func TestStatusWaitRestrictedRBAC(t *testing.T) {
|
|
|
|
|
for _, expectedErr := range tt.expectErrs {
|
|
|
|
|
require.ErrorContains(t, err, expectedErr.Error())
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|
} else {
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
assert.False(t, restrictedConfig.clusterScopedListAttempted)
|
|
|
|
|
}
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
assert.False(t, restrictedConfig.clusterScopedListAttempted)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -947,8 +936,7 @@ func TestStatusWaitMixedResources(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := baseFakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, baseFakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if strings.Contains(tt.name, "delet") {
|
|
|
|
|
@ -958,8 +946,7 @@ func TestStatusWaitMixedResources(t *testing.T) {
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
go func(gvr schema.GroupVersionResource, u *unstructured.Unstructured) {
|
|
|
|
|
time.Sleep(timeUntilDelete)
|
|
|
|
|
err := baseFakeClient.Tracker().Delete(gvr, u.GetNamespace(), u.GetName())
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
assert.NoError(t, baseFakeClient.Tracker().Delete(gvr, u.GetNamespace(), u.GetName()))
|
|
|
|
|
}(gvr, u)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -971,10 +958,10 @@ func TestStatusWaitMixedResources(t *testing.T) {
|
|
|
|
|
for _, expectedErr := range tt.expectErrs {
|
|
|
|
|
require.ErrorContains(t, err, expectedErr.Error())
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|
} else {
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
assert.False(t, restrictedConfig.clusterScopedListAttempted)
|
|
|
|
|
}
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
assert.False(t, restrictedConfig.clusterScopedListAttempted)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -1067,8 +1054,7 @@ func TestStatusWaitWithCustomReaders(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
err := statusWaiter.Wait(resourceList, time.Second*3)
|
|
|
|
|
@ -1077,9 +1063,9 @@ func TestStatusWaitWithCustomReaders(t *testing.T) {
|
|
|
|
|
for _, expectedErrStr := range tt.expectErrStrs {
|
|
|
|
|
require.ErrorContains(t, err, expectedErrStr)
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|
} else {
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
}
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -1139,16 +1125,15 @@ func TestStatusWaitWithJobsAndCustomReaders(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
err := statusWaiter.WaitWithJobs(resourceList, time.Second*3)
|
|
|
|
|
if tt.expectErrs != nil {
|
|
|
|
|
assert.EqualError(t, err, errors.Join(tt.expectErrs...).Error())
|
|
|
|
|
return
|
|
|
|
|
} else {
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
}
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -1238,8 +1223,7 @@ func TestStatusWaitWithFailedResources(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
err := tt.testFunc(&sw, resourceList, time.Second*3)
|
|
|
|
|
@ -1248,9 +1232,9 @@ func TestStatusWaitWithFailedResources(t *testing.T) {
|
|
|
|
|
for _, expectedErrStr := range tt.expectErrStrs {
|
|
|
|
|
require.ErrorContains(t, err, expectedErrStr)
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|
} else {
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
}
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -1343,14 +1327,12 @@ func TestMethodSpecificContextCancellation(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
|
|
|
|
|
err := sw.WatchUntilReady(resourceList, time.Second*3)
|
|
|
|
|
// Should fail due to cancelled method context
|
|
|
|
|
assert.ErrorContains(t, err, "context canceled")
|
|
|
|
|
assert.ErrorContains(t, sw.WatchUntilReady(resourceList, time.Second*3), "context canceled")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
t.Run("Wait uses method-specific context", func(t *testing.T) {
|
|
|
|
|
@ -1376,14 +1358,12 @@ func TestMethodSpecificContextCancellation(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
|
|
|
|
|
err := sw.Wait(resourceList, time.Second*3)
|
|
|
|
|
// Should fail due to cancelled method context
|
|
|
|
|
assert.ErrorContains(t, err, "context canceled")
|
|
|
|
|
assert.ErrorContains(t, sw.Wait(resourceList, time.Second*3), "context canceled")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
t.Run("WaitWithJobs uses method-specific context", func(t *testing.T) {
|
|
|
|
|
@ -1409,14 +1389,12 @@ func TestMethodSpecificContextCancellation(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
|
|
|
|
|
err := sw.WaitWithJobs(resourceList, time.Second*3)
|
|
|
|
|
// Should fail due to cancelled method context
|
|
|
|
|
assert.ErrorContains(t, err, "context canceled")
|
|
|
|
|
assert.ErrorContains(t, sw.WaitWithJobs(resourceList, time.Second*3), "context canceled")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
t.Run("WaitForDelete uses method-specific context", func(t *testing.T) {
|
|
|
|
|
@ -1442,14 +1420,12 @@ func TestMethodSpecificContextCancellation(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
|
|
|
|
|
err := sw.WaitForDelete(resourceList, time.Second*3)
|
|
|
|
|
// Should fail due to cancelled method context
|
|
|
|
|
assert.ErrorContains(t, err, "context canceled")
|
|
|
|
|
assert.ErrorContains(t, sw.WaitForDelete(resourceList, time.Second*3), "context canceled")
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1479,14 +1455,12 @@ func TestMethodContextFallbackToGeneralContext(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
|
|
|
|
|
err := sw.WatchUntilReady(resourceList, time.Second*3)
|
|
|
|
|
// Should fail due to cancelled general context
|
|
|
|
|
assert.ErrorContains(t, err, "context canceled")
|
|
|
|
|
assert.ErrorContains(t, sw.WatchUntilReady(resourceList, time.Second*3), "context canceled")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
t.Run("Wait falls back to general context when method context is nil", func(t *testing.T) {
|
|
|
|
|
@ -1512,14 +1486,12 @@ func TestMethodContextFallbackToGeneralContext(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
|
|
|
|
|
err := sw.Wait(resourceList, time.Second*3)
|
|
|
|
|
// Should fail due to cancelled general context
|
|
|
|
|
assert.ErrorContains(t, err, "context canceled")
|
|
|
|
|
assert.ErrorContains(t, sw.Wait(resourceList, time.Second*3), "context canceled")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
t.Run("WaitWithJobs falls back to general context when method context is nil", func(t *testing.T) {
|
|
|
|
|
@ -1545,14 +1517,12 @@ func TestMethodContextFallbackToGeneralContext(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
|
|
|
|
|
err := sw.WaitWithJobs(resourceList, time.Second*3)
|
|
|
|
|
// Should fail due to cancelled general context
|
|
|
|
|
assert.ErrorContains(t, err, "context canceled")
|
|
|
|
|
assert.ErrorContains(t, sw.WaitWithJobs(resourceList, time.Second*3), "context canceled")
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
t.Run("WaitForDelete falls back to general context when method context is nil", func(t *testing.T) {
|
|
|
|
|
@ -1578,14 +1548,12 @@ func TestMethodContextFallbackToGeneralContext(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
|
|
|
|
|
err := sw.WaitForDelete(resourceList, time.Second*3)
|
|
|
|
|
// Should fail due to cancelled general context
|
|
|
|
|
assert.ErrorContains(t, err, "context canceled")
|
|
|
|
|
assert.ErrorContains(t, sw.WaitForDelete(resourceList, time.Second*3), "context canceled")
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1615,14 +1583,12 @@ func TestMethodContextOverridesGeneralContext(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
|
|
|
|
|
err := sw.WatchUntilReady(resourceList, time.Second*3)
|
|
|
|
|
// Should succeed because method context is used and it's not cancelled
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
assert.NoError(t, sw.WatchUntilReady(resourceList, time.Second*3))
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
t.Run("method-specific context overrides general context for Wait", func(t *testing.T) {
|
|
|
|
|
@ -1648,14 +1614,12 @@ func TestMethodContextOverridesGeneralContext(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
|
|
|
|
|
err := sw.Wait(resourceList, time.Second*3)
|
|
|
|
|
// Should succeed because method context is used and it's not cancelled
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
assert.NoError(t, sw.Wait(resourceList, time.Second*3))
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
t.Run("method-specific context overrides general context for WaitWithJobs", func(t *testing.T) {
|
|
|
|
|
@ -1681,14 +1645,12 @@ func TestMethodContextOverridesGeneralContext(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
|
|
|
|
|
err := sw.WaitWithJobs(resourceList, time.Second*3)
|
|
|
|
|
// Should succeed because method context is used and it's not cancelled
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
assert.NoError(t, sw.WaitWithJobs(resourceList, time.Second*3))
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
t.Run("method-specific context overrides general context for WaitForDelete", func(t *testing.T) {
|
|
|
|
|
@ -1717,9 +1679,8 @@ func TestMethodContextOverridesGeneralContext(t *testing.T) {
|
|
|
|
|
// immediately cancelled and the call would return a context error.
|
|
|
|
|
objs := getRuntimeObjFromManifests(t, []string{podCurrentManifest})
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
err := sw.WaitForDelete(resourceList, time.Second)
|
|
|
|
|
// Should succeed because method context is used and it's not cancelled
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
assert.NoError(t, sw.WaitForDelete(resourceList, time.Second))
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -1801,8 +1762,7 @@ func TestWatchUntilReadyWithCustomReaders(t *testing.T) {
|
|
|
|
|
for _, obj := range objs {
|
|
|
|
|
u := obj.(*unstructured.Unstructured)
|
|
|
|
|
gvr := getGVR(t, fakeMapper, u)
|
|
|
|
|
err := fakeClient.Tracker().Create(gvr, u, u.GetNamespace())
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
require.NoError(t, fakeClient.Tracker().Create(gvr, u, u.GetNamespace()))
|
|
|
|
|
}
|
|
|
|
|
resourceList := getResourceListFromRuntimeObjs(t, c, objs)
|
|
|
|
|
err := statusWaiter.WatchUntilReady(resourceList, time.Second*3)
|
|
|
|
|
@ -1811,9 +1771,9 @@ func TestWatchUntilReadyWithCustomReaders(t *testing.T) {
|
|
|
|
|
for _, expectedErrStr := range tt.expectErrStrs {
|
|
|
|
|
require.ErrorContains(t, err, expectedErrStr)
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|
} else {
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
}
|
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|