mirror of
https://github.com/helm/helm.git
synced 2026-08-09 01:21:20 +00:00
Merge pull request #32423 from mmorel-35/testifylint-manual-assert-pkg-8
chore(pkg): refactor: convert tests to testify assert/require part 8
This commit is contained in:
@@ -21,6 +21,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"helm.sh/helm/v4/pkg/chart/common"
|
||||
)
|
||||
@@ -76,15 +77,12 @@ func TestSaveChartNoRawData(t *testing.T) {
|
||||
}
|
||||
|
||||
is := assert.New(t)
|
||||
req := require.New(t)
|
||||
data, err := json.Marshal(chrt)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
req.NoError(err)
|
||||
|
||||
res := &Chart{}
|
||||
if err := json.Unmarshal(data, res); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
req.NoError(json.Unmarshal(data, res))
|
||||
|
||||
is.Equal([]*common.File(nil), res.Raw)
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,10 +16,11 @@ package driver
|
||||
import (
|
||||
"encoding/base64"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
|
||||
"helm.sh/helm/v4/pkg/release"
|
||||
@@ -29,9 +30,7 @@ import (
|
||||
|
||||
func TestConfigMapName(t *testing.T) {
|
||||
c := newTestFixtureCfgMaps(t)
|
||||
if c.Name() != ConfigMapsDriverName {
|
||||
t.Errorf("Expected name to be %q, got %q", ConfigMapsDriverName, c.Name())
|
||||
}
|
||||
assert.Equal(t, ConfigMapsDriverName, c.Name(), "Expected name to be %q, got %q", ConfigMapsDriverName, c.Name())
|
||||
}
|
||||
|
||||
func TestConfigMapGet(t *testing.T) {
|
||||
@@ -45,13 +44,9 @@ func TestConfigMapGet(t *testing.T) {
|
||||
|
||||
// get release with key
|
||||
got, err := cfgmaps.Get(key)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to get release: %s", err)
|
||||
}
|
||||
require.NoError(t, err, "Failed to get release")
|
||||
// compare fetched release with original
|
||||
if !reflect.DeepEqual(rel, got) {
|
||||
t.Errorf("Expected {%v}, got {%v}", rel, got)
|
||||
}
|
||||
assert.Truef(t, reflect.DeepEqual(rel, got), "Expected {%v}, got {%v}", rel, got)
|
||||
}
|
||||
|
||||
func TestUncompressedConfigMapGet(t *testing.T) {
|
||||
@@ -63,13 +58,9 @@ func TestUncompressedConfigMapGet(t *testing.T) {
|
||||
|
||||
// Create a test fixture which contains an uncompressed release
|
||||
cfgmap, err := newConfigMapsObject(key, rel, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to create configmap: %s", err)
|
||||
}
|
||||
require.NoError(t, err, "Failed to create configmap")
|
||||
b, err := json.Marshal(rel)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to marshal release: %s", err)
|
||||
}
|
||||
require.NoError(t, err, "Failed to marshal release")
|
||||
cfgmap.Data["release"] = base64.StdEncoding.EncodeToString(b)
|
||||
var mock MockConfigMapsInterface
|
||||
mock.objects = map[string]*v1.ConfigMap{key: cfgmap}
|
||||
@@ -77,13 +68,9 @@ func TestUncompressedConfigMapGet(t *testing.T) {
|
||||
|
||||
// get release with key
|
||||
got, err := cfgmaps.Get(key)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to get release: %s", err)
|
||||
}
|
||||
require.NoError(t, err, "Failed to get release")
|
||||
// compare fetched release with original
|
||||
if !reflect.DeepEqual(rel, got) {
|
||||
t.Errorf("Expected {%v}, got {%v}", rel, got)
|
||||
}
|
||||
assert.Truef(t, reflect.DeepEqual(rel, got), "Expected {%v}, got {%v}", rel, got)
|
||||
}
|
||||
|
||||
func convertReleaserToV1(t *testing.T, rel release.Releaser) *rspb.Release {
|
||||
@@ -117,12 +104,8 @@ func TestConfigMapList(t *testing.T) {
|
||||
return rls.Info.Status == common.StatusUninstalled
|
||||
})
|
||||
// check
|
||||
if err != nil {
|
||||
t.Errorf("Failed to list deleted: %s", err)
|
||||
}
|
||||
if len(del) != 2 {
|
||||
t.Errorf("Expected 2 deleted, got %d:\n%v\n", len(del), del)
|
||||
}
|
||||
require.NoError(t, err, "Failed to list deleted")
|
||||
assert.Len(t, del, 2, "Expected 2 deleted, got %d:\n%v\n", len(del), del)
|
||||
|
||||
// list all deployed releases
|
||||
dpl, err := cfgmaps.List(func(rel release.Releaser) bool {
|
||||
@@ -130,12 +113,8 @@ func TestConfigMapList(t *testing.T) {
|
||||
return rls.Info.Status == common.StatusDeployed
|
||||
})
|
||||
// check
|
||||
if err != nil {
|
||||
t.Errorf("Failed to list deployed: %s", err)
|
||||
}
|
||||
if len(dpl) != 2 {
|
||||
t.Errorf("Expected 2 deployed, got %d", len(dpl))
|
||||
}
|
||||
require.NoError(t, err, "Failed to list deployed")
|
||||
assert.Len(t, dpl, 2, "Expected 2 deployed, got %d", len(dpl))
|
||||
|
||||
// list all superseded releases
|
||||
ssd, err := cfgmaps.List(func(rel release.Releaser) bool {
|
||||
@@ -143,22 +122,14 @@ func TestConfigMapList(t *testing.T) {
|
||||
return rls.Info.Status == common.StatusSuperseded
|
||||
})
|
||||
// check
|
||||
if err != nil {
|
||||
t.Errorf("Failed to list superseded: %s", err)
|
||||
}
|
||||
if len(ssd) != 2 {
|
||||
t.Errorf("Expected 2 superseded, got %d", len(ssd))
|
||||
}
|
||||
require.NoError(t, err, "Failed to list superseded")
|
||||
assert.Len(t, ssd, 2, "Expected 2 superseded, got %d", len(ssd))
|
||||
// Check if release having both system and custom labels, this is needed to ensure that selector filtering would work.
|
||||
rls := convertReleaserToV1(t, ssd[0])
|
||||
_, ok := rls.Labels["name"]
|
||||
if !ok {
|
||||
t.Fatalf("Expected 'name' label in results, actual %v", rls.Labels)
|
||||
}
|
||||
require.True(t, ok, "Expected 'name' label in results, actual %v", rls.Labels)
|
||||
_, ok = rls.Labels["key1"]
|
||||
if !ok {
|
||||
t.Fatalf("Expected 'key1' label in results, actual %v", rls.Labels)
|
||||
}
|
||||
require.True(t, ok, "Expected 'key1' label in results, actual %v", rls.Labels)
|
||||
}
|
||||
|
||||
func TestConfigMapQuery(t *testing.T) {
|
||||
@@ -172,17 +143,11 @@ func TestConfigMapQuery(t *testing.T) {
|
||||
}...)
|
||||
|
||||
rls, err := cfgmaps.Query(map[string]string{"status": "deployed"})
|
||||
if err != nil {
|
||||
t.Errorf("Failed to query: %s", err)
|
||||
}
|
||||
if len(rls) != 2 {
|
||||
t.Errorf("Expected 2 results, got %d", len(rls))
|
||||
}
|
||||
require.NoError(t, err, "Failed to query")
|
||||
assert.Len(t, rls, 2, "Expected 2 results, got %d", len(rls))
|
||||
|
||||
_, err = cfgmaps.Query(map[string]string{"name": "notExist"})
|
||||
if !errors.Is(err, ErrReleaseNotFound) {
|
||||
t.Errorf("Expected {%v}, got {%v}", ErrReleaseNotFound, err)
|
||||
}
|
||||
assert.ErrorIs(t, err, ErrReleaseNotFound)
|
||||
}
|
||||
|
||||
func TestConfigMapCreate(t *testing.T) {
|
||||
@@ -195,20 +160,14 @@ func TestConfigMapCreate(t *testing.T) {
|
||||
rel := releaseStub(name, vers, namespace, common.StatusDeployed)
|
||||
|
||||
// store the release in a configmap
|
||||
if err := cfgmaps.Create(key, rel); err != nil {
|
||||
t.Fatalf("Failed to create release with key %q: %s", key, err)
|
||||
}
|
||||
require.NoErrorf(t, cfgmaps.Create(key, rel), "Failed to create release with key %q", key)
|
||||
|
||||
// get the release back
|
||||
got, err := cfgmaps.Get(key)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to get release with key %q: %s", key, err)
|
||||
}
|
||||
require.NoError(t, err, "Failed to get release with key %q", key)
|
||||
|
||||
// compare created release with original
|
||||
if !reflect.DeepEqual(rel, got) {
|
||||
t.Errorf("Expected {%v}, got {%v}", rel, got)
|
||||
}
|
||||
assert.Truef(t, reflect.DeepEqual(rel, got), "Expected {%v}, got {%v}", rel, got)
|
||||
}
|
||||
|
||||
func TestConfigMapUpdate(t *testing.T) {
|
||||
@@ -224,21 +183,15 @@ func TestConfigMapUpdate(t *testing.T) {
|
||||
rel.Info.Status = common.StatusSuperseded
|
||||
|
||||
// perform the update
|
||||
if err := cfgmaps.Update(key, rel); err != nil {
|
||||
t.Fatalf("Failed to update release: %s", err)
|
||||
}
|
||||
require.NoErrorf(t, cfgmaps.Update(key, rel), "Failed to update release")
|
||||
|
||||
// fetch the updated release
|
||||
goti, err := cfgmaps.Get(key)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to get release with key %q: %s", key, err)
|
||||
}
|
||||
require.NoError(t, err, "Failed to get release with key %q", key)
|
||||
got := convertReleaserToV1(t, goti)
|
||||
|
||||
// check release has actually been updated by comparing modified fields
|
||||
if rel.Info.Status != got.Info.Status {
|
||||
t.Errorf("Expected status %s, got status %s", rel.Info.Status.String(), got.Info.Status.String())
|
||||
}
|
||||
assert.Equal(t, got.Info.Status, rel.Info.Status, "Expected status %s, got status %s", rel.Info.Status.String(), got.Info.Status.String())
|
||||
}
|
||||
|
||||
func TestConfigMapDelete(t *testing.T) {
|
||||
@@ -252,20 +205,12 @@ func TestConfigMapDelete(t *testing.T) {
|
||||
|
||||
// perform the delete on a non-existent release
|
||||
_, err := cfgmaps.Delete("nonexistent")
|
||||
if !errors.Is(err, ErrReleaseNotFound) {
|
||||
t.Fatalf("Expected ErrReleaseNotFound: got {%v}", err)
|
||||
}
|
||||
require.ErrorIs(t, err, ErrReleaseNotFound)
|
||||
|
||||
// perform the delete
|
||||
rls, err := cfgmaps.Delete(key)
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to delete release with key %q: %s", key, err)
|
||||
}
|
||||
if !reflect.DeepEqual(rel, rls) {
|
||||
t.Errorf("Expected {%v}, got {%v}", rel, rls)
|
||||
}
|
||||
require.NoError(t, err, "Failed to delete release with key %q", key)
|
||||
assert.Truef(t, reflect.DeepEqual(rel, rls), "Expected {%v}, got {%v}", rel, rls)
|
||||
_, err = cfgmaps.Get(key)
|
||||
if !errors.Is(err, ErrReleaseNotFound) {
|
||||
t.Errorf("Expected {%v}, got {%v}", ErrReleaseNotFound, err)
|
||||
}
|
||||
assert.ErrorIs(t, err, ErrReleaseNotFound)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user