testifylint: enable error-nil rule (#7670)
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>pull/8021/head
parent
aa3fde5ea5
commit
35c90f1672
|
@ -239,7 +239,6 @@ linters-settings:
|
||||||
# TODO: enable them all
|
# TODO: enable them all
|
||||||
disable:
|
disable:
|
||||||
- error-is-as
|
- error-is-as
|
||||||
- error-nil
|
|
||||||
- expected-actual
|
- expected-actual
|
||||||
- go-require
|
- go-require
|
||||||
- float-compare
|
- float-compare
|
||||||
|
|
|
@ -65,13 +65,13 @@ func TestHookTracker_Record(t *testing.T) {
|
||||||
info := tracker.tracker[key]
|
info := tracker.tracker[key]
|
||||||
assert.True(t, info.hookFailed)
|
assert.True(t, info.hookFailed)
|
||||||
assert.True(t, info.hookExecuted)
|
assert.True(t, info.hookExecuted)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = tracker.Record("ns2", "pod2", "container1", HookSourceAnnotation, "h1", "", true, fmt.Errorf("err"))
|
err = tracker.Record("ns2", "pod2", "container1", HookSourceAnnotation, "h1", "", true, fmt.Errorf("err"))
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
err = tracker.Record("ns1", "pod1", "container1", HookSourceAnnotation, "h1", "", false, nil)
|
err = tracker.Record("ns1", "pod1", "container1", HookSourceAnnotation, "h1", "", false, nil)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
assert.True(t, info.hookFailed)
|
assert.True(t, info.hookFailed)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,13 +141,13 @@ func TestMultiHookTracker_Record(t *testing.T) {
|
||||||
info := mht.trackers["restore1"].tracker[key]
|
info := mht.trackers["restore1"].tracker[key]
|
||||||
assert.True(t, info.hookFailed)
|
assert.True(t, info.hookFailed)
|
||||||
assert.True(t, info.hookExecuted)
|
assert.True(t, info.hookExecuted)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
err = mht.Record("restore1", "ns2", "pod2", "container1", HookSourceAnnotation, "h1", "", true, fmt.Errorf("err"))
|
err = mht.Record("restore1", "ns2", "pod2", "container1", HookSourceAnnotation, "h1", "", true, fmt.Errorf("err"))
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
err = mht.Record("restore2", "ns2", "pod2", "container1", HookSourceAnnotation, "h1", "", true, fmt.Errorf("err"))
|
err = mht.Record("restore2", "ns2", "pod2", "container1", HookSourceAnnotation, "h1", "", true, fmt.Errorf("err"))
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMultiHookTracker_Stat(t *testing.T) {
|
func TestMultiHookTracker_Stat(t *testing.T) {
|
||||||
|
|
|
@ -1199,7 +1199,7 @@ func TestGroupRestoreExecHooks(t *testing.T) {
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
actual, err := GroupRestoreExecHooks("restore1", tc.resourceRestoreHooks, tc.pod, velerotest.NewLogger(), hookTracker)
|
actual, err := GroupRestoreExecHooks("restore1", tc.resourceRestoreHooks, tc.pod, velerotest.NewLogger(), hookTracker)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, tc.expected, actual)
|
assert.Equal(t, tc.expected, actual)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -1976,7 +1976,7 @@ func TestValidateContainer(t *testing.T) {
|
||||||
expectedError := fmt.Errorf("invalid InitContainer in restore hook, it doesn't have Command, Name or Image field")
|
expectedError := fmt.Errorf("invalid InitContainer in restore hook, it doesn't have Command, Name or Image field")
|
||||||
|
|
||||||
// valid string should return nil as result.
|
// valid string should return nil as result.
|
||||||
assert.Nil(t, ValidateContainer([]byte(valid)))
|
assert.NoError(t, ValidateContainer([]byte(valid)))
|
||||||
|
|
||||||
// noName string should return expected error as result.
|
// noName string should return expected error as result.
|
||||||
assert.Equal(t, expectedError, ValidateContainer([]byte(noName)))
|
assert.Equal(t, expectedError, ValidateContainer([]byte(noName)))
|
||||||
|
|
|
@ -732,7 +732,7 @@ func TestWaitExecHandleHooks(t *testing.T) {
|
||||||
|
|
||||||
for _, e := range test.expectedExecutions {
|
for _, e := range test.expectedExecutions {
|
||||||
obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(e.pod)
|
obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(e.pod)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
podCommandExecutor.On("ExecutePodCommand", mock.Anything, obj, e.pod.Namespace, e.pod.Name, e.name, e.hook).Return(e.error)
|
podCommandExecutor.On("ExecutePodCommand", mock.Anything, obj, e.pod.Namespace, e.pod.Name, e.name, e.hook).Return(e.error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1269,7 +1269,7 @@ func TestRestoreHookTrackerUpdate(t *testing.T) {
|
||||||
|
|
||||||
for _, e := range test.expectedExecutions {
|
for _, e := range test.expectedExecutions {
|
||||||
obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(e.pod)
|
obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(e.pod)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
podCommandExecutor.On("ExecutePodCommand", mock.Anything, obj, e.pod.Namespace, e.pod.Name, e.name, e.hook).Return(e.error)
|
podCommandExecutor.On("ExecutePodCommand", mock.Anything, obj, e.pod.Namespace, e.pod.Name, e.name, e.hook).Return(e.error)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -232,7 +232,7 @@ func TestGetResourcePoliciesFromConfig(t *testing.T) {
|
||||||
|
|
||||||
// Call the function and check for errors
|
// Call the function and check for errors
|
||||||
resPolicies, err := getResourcePoliciesFromConfig(cm)
|
resPolicies, err := getResourcePoliciesFromConfig(cm)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Check that the returned resourcePolicies object contains the expected data
|
// Check that the returned resourcePolicies object contains the expected data
|
||||||
assert.Equal(t, "v1", resPolicies.version)
|
assert.Equal(t, "v1", resPolicies.version)
|
||||||
|
@ -422,12 +422,12 @@ volumePolicies:
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("got error when get match action %v", err)
|
t.Fatalf("got error when get match action %v", err)
|
||||||
}
|
}
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
policies := &Policies{}
|
policies := &Policies{}
|
||||||
err = policies.BuildPolicy(resPolicies)
|
err = policies.BuildPolicy(resPolicies)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
action, err := policies.GetMatchAction(tc.vol)
|
action, err := policies.GetMatchAction(tc.vol)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
if tc.skip {
|
if tc.skip {
|
||||||
if action.Type != Skip {
|
if action.Type != Skip {
|
||||||
|
|
|
@ -336,7 +336,7 @@ func TestVolumeHelperImpl_ShouldPerformSnapshot(t *testing.T) {
|
||||||
|
|
||||||
actualShouldSnapshot, actualError := vh.ShouldPerformSnapshot(&unstructured.Unstructured{Object: obj}, tc.groupResource)
|
actualShouldSnapshot, actualError := vh.ShouldPerformSnapshot(&unstructured.Unstructured{Object: obj}, tc.groupResource)
|
||||||
if tc.expectedErr {
|
if tc.expectedErr {
|
||||||
require.NotNil(t, actualError, "Want error; Got nil error")
|
require.Error(t, actualError, "Want error; Got nil error")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -698,7 +698,7 @@ func TestVolumeHelperImpl_ShouldPerformFSBackup(t *testing.T) {
|
||||||
|
|
||||||
actualShouldFSBackup, actualError := vh.ShouldPerformFSBackup(tc.pod.Spec.Volumes[0], *tc.pod)
|
actualShouldFSBackup, actualError := vh.ShouldPerformFSBackup(tc.pod.Spec.Volumes[0], *tc.pod)
|
||||||
if tc.expectedErr {
|
if tc.expectedErr {
|
||||||
require.NotNil(t, actualError, "Want error; Got nil error")
|
require.Error(t, actualError, "Want error; Got nil error")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -112,7 +112,7 @@ func TestParse(t *testing.T) {
|
||||||
if tc.wantErrMsg != nil {
|
if tc.wantErrMsg != nil {
|
||||||
assert.ErrorIs(t, err, tc.wantErrMsg, "Error should be: %v, got: %v", tc.wantErrMsg, err)
|
assert.ErrorIs(t, err, tc.wantErrMsg, "Error should be: %v, got: %v", tc.wantErrMsg, err)
|
||||||
} else {
|
} else {
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, tc.want, res)
|
assert.Equal(t, tc.want, res)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -226,7 +226,7 @@ func TestParseGroupVersions(t *testing.T) {
|
||||||
if tc.wantErrMsg != nil {
|
if tc.wantErrMsg != nil {
|
||||||
assert.ErrorIs(t, err, tc.wantErrMsg, "Error should be: %v, got: %v", tc.wantErrMsg, err)
|
assert.ErrorIs(t, err, tc.wantErrMsg, "Error should be: %v, got: %v", tc.wantErrMsg, err)
|
||||||
} else {
|
} else {
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, tc.want, res)
|
assert.Equal(t, tc.want, res)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -384,7 +384,7 @@ func TestServiceAccountActionExecute(t *testing.T) {
|
||||||
res, additional, err := action.Execute(test.serviceAccount, nil)
|
res, additional, err := action.Execute(test.serviceAccount, nil)
|
||||||
|
|
||||||
assert.Equal(t, test.serviceAccount, res)
|
assert.Equal(t, test.serviceAccount, res)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// ensure slices are ordered for valid comparison
|
// ensure slices are ordered for valid comparison
|
||||||
sort.Slice(test.expectedAdditionalItems, func(i, j int) bool {
|
sort.Slice(test.expectedAdditionalItems, func(i, j int) bool {
|
||||||
|
@ -591,7 +591,7 @@ func TestServiceAccountActionExecuteOnBeta1(t *testing.T) {
|
||||||
res, additional, err := action.Execute(test.serviceAccount, nil)
|
res, additional, err := action.Execute(test.serviceAccount, nil)
|
||||||
|
|
||||||
assert.Equal(t, test.serviceAccount, res)
|
assert.Equal(t, test.serviceAccount, res)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// ensure slices are ordered for valid comparison
|
// ensure slices are ordered for valid comparison
|
||||||
sort.Slice(test.expectedAdditionalItems, func(i, j int) bool {
|
sort.Slice(test.expectedAdditionalItems, func(i, j int) bool {
|
||||||
|
|
|
@ -220,7 +220,7 @@ func TestGetPVName(t *testing.T) {
|
||||||
if tc.obj != nil {
|
if tc.obj != nil {
|
||||||
data, err := runtime.DefaultUnstructuredConverter.ToUnstructured(tc.obj)
|
data, err := runtime.DefaultUnstructuredConverter.ToUnstructured(tc.obj)
|
||||||
o = &unstructured.Unstructured{Object: data}
|
o = &unstructured.Unstructured{Object: data}
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
name, err2 := getPVName(o, tc.groupResource)
|
name, err2 := getPVName(o, tc.groupResource)
|
||||||
assert.Equal(t, tc.pvName, name)
|
assert.Equal(t, tc.pvName, name)
|
||||||
|
|
|
@ -79,7 +79,7 @@ func TestConfig(t *testing.T) {
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
client, err := Config(test.kubeconfig, test.kubecontext, "velero", test.QPS, test.burst)
|
client, err := Config(test.kubeconfig, test.kubecontext, "velero", test.QPS, test.burst)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, test.expectedHost, client.Host)
|
assert.Equal(t, test.expectedHost, client.Host)
|
||||||
assert.Equal(t, test.QPS, client.QPS)
|
assert.Equal(t, test.QPS, client.QPS)
|
||||||
assert.Equal(t, test.burst, client.Burst)
|
assert.Equal(t, test.burst, client.Burst)
|
||||||
|
|
|
@ -134,11 +134,11 @@ func TestFactory(t *testing.T) {
|
||||||
assert.NotNil(t, dynamicClient)
|
assert.NotNil(t, dynamicClient)
|
||||||
|
|
||||||
kubebuilderClient, e := f.KubebuilderClient()
|
kubebuilderClient, e := f.KubebuilderClient()
|
||||||
assert.Nil(t, e)
|
assert.NoError(t, e)
|
||||||
assert.NotNil(t, kubebuilderClient)
|
assert.NotNil(t, kubebuilderClient)
|
||||||
|
|
||||||
kbClientWithWatch, e := f.KubebuilderWatchClient()
|
kbClientWithWatch, e := f.KubebuilderWatchClient()
|
||||||
assert.Nil(t, e)
|
assert.NoError(t, e)
|
||||||
assert.NotNil(t, kbClientWithWatch)
|
assert.NotNil(t, kbClientWithWatch)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -129,7 +129,7 @@ func TestCreateOptions_BuildBackupFromSchedule(t *testing.T) {
|
||||||
|
|
||||||
func TestCreateOptions_OrderedResources(t *testing.T) {
|
func TestCreateOptions_OrderedResources(t *testing.T) {
|
||||||
_, err := ParseOrderedResources("pods= ns1/p1; ns1/p2; persistentvolumeclaims=ns2/pvc1, ns2/pvc2")
|
_, err := ParseOrderedResources("pods= ns1/p1; ns1/p2; persistentvolumeclaims=ns2/pvc1, ns2/pvc2")
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
orderedResources, err := ParseOrderedResources("pods= ns1/p1,ns1/p2 ; persistentvolumeclaims=ns2/pvc1,ns2/pvc2")
|
orderedResources, err := ParseOrderedResources("pods= ns1/p1,ns1/p2 ; persistentvolumeclaims=ns2/pvc1,ns2/pvc2")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
|
@ -148,7 +148,7 @@ func TestCreateCommand_Run(t *testing.T) {
|
||||||
|
|
||||||
o.Complete(args, f)
|
o.Complete(args, f)
|
||||||
e := o.Validate(c, args, f)
|
e := o.Validate(c, args, f)
|
||||||
assert.Nil(t, e)
|
assert.NoError(t, e)
|
||||||
|
|
||||||
e = o.Run(c, f)
|
e = o.Run(c, f)
|
||||||
assert.Contains(t, e.Error(), fmt.Sprintf("%s: no such file or directory", caCertFile))
|
assert.Contains(t, e.Error(), fmt.Sprintf("%s: no such file or directory", caCertFile))
|
||||||
|
|
|
@ -66,7 +66,7 @@ func TestNewSetCommand(t *testing.T) {
|
||||||
args := []string{backupName}
|
args := []string{backupName}
|
||||||
o.Complete(args, f)
|
o.Complete(args, f)
|
||||||
e := o.Validate(c, args, f)
|
e := o.Validate(c, args, f)
|
||||||
assert.Nil(t, e)
|
assert.NoError(t, e)
|
||||||
|
|
||||||
e = o.Run(c, f)
|
e = o.Run(c, f)
|
||||||
assert.Contains(t, e.Error(), fmt.Sprintf("%s: no such file or directory", cacert))
|
assert.Contains(t, e.Error(), fmt.Sprintf("%s: no such file or directory", cacert))
|
||||||
|
|
|
@ -28,7 +28,7 @@ import (
|
||||||
func TestCompleteOfSelectOption(t *testing.T) {
|
func TestCompleteOfSelectOption(t *testing.T) {
|
||||||
option := &SelectOptions{}
|
option := &SelectOptions{}
|
||||||
args := []string{"arg1", "arg2"}
|
args := []string{"arg1", "arg2"}
|
||||||
require.Nil(t, option.Complete(args))
|
require.NoError(t, option.Complete(args))
|
||||||
assert.Equal(t, args, option.Names)
|
assert.Equal(t, args, option.Names)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,8 +38,8 @@ func TestValidateOfSelectOption(t *testing.T) {
|
||||||
Selector: flag.LabelSelector{},
|
Selector: flag.LabelSelector{},
|
||||||
All: false,
|
All: false,
|
||||||
}
|
}
|
||||||
assert.NotNil(t, option.Validate())
|
assert.Error(t, option.Validate())
|
||||||
|
|
||||||
option.All = true
|
option.All = true
|
||||||
assert.Nil(t, option.Validate())
|
assert.NoError(t, option.Validate())
|
||||||
}
|
}
|
||||||
|
|
|
@ -194,14 +194,14 @@ func Test_newServer(t *testing.T) {
|
||||||
_, err := newServer(factory, serverConfig{
|
_, err := newServer(factory, serverConfig{
|
||||||
uploaderType: "invalid",
|
uploaderType: "invalid",
|
||||||
}, logger)
|
}, logger)
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
// invalid clientQPS
|
// invalid clientQPS
|
||||||
_, err = newServer(factory, serverConfig{
|
_, err = newServer(factory, serverConfig{
|
||||||
uploaderType: uploader.KopiaType,
|
uploaderType: uploader.KopiaType,
|
||||||
clientQPS: -1,
|
clientQPS: -1,
|
||||||
}, logger)
|
}, logger)
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
// invalid clientBurst
|
// invalid clientBurst
|
||||||
factory.On("SetClientQPS", mock.Anything).Return()
|
factory.On("SetClientQPS", mock.Anything).Return()
|
||||||
|
@ -210,7 +210,7 @@ func Test_newServer(t *testing.T) {
|
||||||
clientQPS: 1,
|
clientQPS: 1,
|
||||||
clientBurst: -1,
|
clientBurst: -1,
|
||||||
}, logger)
|
}, logger)
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
// invalid clientBclientPageSizeurst
|
// invalid clientBclientPageSizeurst
|
||||||
factory.On("SetClientQPS", mock.Anything).Return().
|
factory.On("SetClientQPS", mock.Anything).Return().
|
||||||
|
@ -221,7 +221,7 @@ func Test_newServer(t *testing.T) {
|
||||||
clientBurst: 1,
|
clientBurst: 1,
|
||||||
clientPageSize: -1,
|
clientPageSize: -1,
|
||||||
}, logger)
|
}, logger)
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
// got error when creating client
|
// got error when creating client
|
||||||
factory.On("SetClientQPS", mock.Anything).Return().
|
factory.On("SetClientQPS", mock.Anything).Return().
|
||||||
|
@ -235,7 +235,7 @@ func Test_newServer(t *testing.T) {
|
||||||
clientBurst: 1,
|
clientBurst: 1,
|
||||||
clientPageSize: 100,
|
clientPageSize: 100,
|
||||||
}, logger)
|
}, logger)
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_namespaceExists(t *testing.T) {
|
func Test_namespaceExists(t *testing.T) {
|
||||||
|
@ -250,10 +250,10 @@ func Test_namespaceExists(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// namespace doesn't exist
|
// namespace doesn't exist
|
||||||
assert.NotNil(t, server.namespaceExists("not-exist"))
|
assert.Error(t, server.namespaceExists("not-exist"))
|
||||||
|
|
||||||
// namespace exists
|
// namespace exists
|
||||||
assert.Nil(t, server.namespaceExists("velero"))
|
assert.NoError(t, server.namespaceExists("velero"))
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_veleroResourcesExist(t *testing.T) {
|
func Test_veleroResourcesExist(t *testing.T) {
|
||||||
|
@ -265,7 +265,7 @@ func Test_veleroResourcesExist(t *testing.T) {
|
||||||
|
|
||||||
// velero resources don't exist
|
// velero resources don't exist
|
||||||
helper.On("Resources").Return(nil)
|
helper.On("Resources").Return(nil)
|
||||||
assert.NotNil(t, server.veleroResourcesExist())
|
assert.Error(t, server.veleroResourcesExist())
|
||||||
|
|
||||||
// velero resources exist
|
// velero resources exist
|
||||||
helper.On("Resources").Unset()
|
helper.On("Resources").Unset()
|
||||||
|
@ -294,7 +294,7 @@ func Test_veleroResourcesExist(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
assert.Nil(t, server.veleroResourcesExist())
|
assert.NoError(t, server.veleroResourcesExist())
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_markInProgressBackupsFailed(t *testing.T) {
|
func Test_markInProgressBackupsFailed(t *testing.T) {
|
||||||
|
@ -329,11 +329,11 @@ func Test_markInProgressBackupsFailed(t *testing.T) {
|
||||||
markInProgressBackupsFailed(context.Background(), c, "velero", logrus.New())
|
markInProgressBackupsFailed(context.Background(), c, "velero", logrus.New())
|
||||||
|
|
||||||
backup01 := &velerov1api.Backup{}
|
backup01 := &velerov1api.Backup{}
|
||||||
require.Nil(t, c.Get(context.Background(), client.ObjectKey{Namespace: "velero", Name: "backup01"}, backup01))
|
require.NoError(t, c.Get(context.Background(), client.ObjectKey{Namespace: "velero", Name: "backup01"}, backup01))
|
||||||
assert.Equal(t, velerov1api.BackupPhaseFailed, backup01.Status.Phase)
|
assert.Equal(t, velerov1api.BackupPhaseFailed, backup01.Status.Phase)
|
||||||
|
|
||||||
backup02 := &velerov1api.Backup{}
|
backup02 := &velerov1api.Backup{}
|
||||||
require.Nil(t, c.Get(context.Background(), client.ObjectKey{Namespace: "velero", Name: "backup02"}, backup02))
|
require.NoError(t, c.Get(context.Background(), client.ObjectKey{Namespace: "velero", Name: "backup02"}, backup02))
|
||||||
assert.Equal(t, velerov1api.BackupPhaseCompleted, backup02.Status.Phase)
|
assert.Equal(t, velerov1api.BackupPhaseCompleted, backup02.Status.Phase)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -369,11 +369,11 @@ func Test_markInProgressRestoresFailed(t *testing.T) {
|
||||||
markInProgressRestoresFailed(context.Background(), c, "velero", logrus.New())
|
markInProgressRestoresFailed(context.Background(), c, "velero", logrus.New())
|
||||||
|
|
||||||
restore01 := &velerov1api.Restore{}
|
restore01 := &velerov1api.Restore{}
|
||||||
require.Nil(t, c.Get(context.Background(), client.ObjectKey{Namespace: "velero", Name: "restore01"}, restore01))
|
require.NoError(t, c.Get(context.Background(), client.ObjectKey{Namespace: "velero", Name: "restore01"}, restore01))
|
||||||
assert.Equal(t, velerov1api.RestorePhaseFailed, restore01.Status.Phase)
|
assert.Equal(t, velerov1api.RestorePhaseFailed, restore01.Status.Phase)
|
||||||
|
|
||||||
restore02 := &velerov1api.Restore{}
|
restore02 := &velerov1api.Restore{}
|
||||||
require.Nil(t, c.Get(context.Background(), client.ObjectKey{Namespace: "velero", Name: "restore02"}, restore02))
|
require.NoError(t, c.Get(context.Background(), client.ObjectKey{Namespace: "velero", Name: "restore02"}, restore02))
|
||||||
assert.Equal(t, velerov1api.RestorePhaseCompleted, restore02.Status.Phase)
|
assert.Equal(t, velerov1api.RestorePhaseCompleted, restore02.Status.Phase)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -403,11 +403,11 @@ func Test_setDefaultBackupLocation(t *testing.T) {
|
||||||
setDefaultBackupLocation(context.Background(), c, "velero", "default", logrus.New())
|
setDefaultBackupLocation(context.Background(), c, "velero", "default", logrus.New())
|
||||||
|
|
||||||
defaultLocation := &velerov1api.BackupStorageLocation{}
|
defaultLocation := &velerov1api.BackupStorageLocation{}
|
||||||
require.Nil(t, c.Get(context.Background(), client.ObjectKey{Namespace: "velero", Name: "default"}, defaultLocation))
|
require.NoError(t, c.Get(context.Background(), client.ObjectKey{Namespace: "velero", Name: "default"}, defaultLocation))
|
||||||
assert.True(t, defaultLocation.Spec.Default)
|
assert.True(t, defaultLocation.Spec.Default)
|
||||||
|
|
||||||
nonDefaultLocation := &velerov1api.BackupStorageLocation{}
|
nonDefaultLocation := &velerov1api.BackupStorageLocation{}
|
||||||
require.Nil(t, c.Get(context.Background(), client.ObjectKey{Namespace: "velero", Name: "non-default"}, nonDefaultLocation))
|
require.NoError(t, c.Get(context.Background(), client.ObjectKey{Namespace: "velero", Name: "non-default"}, nonDefaultLocation))
|
||||||
assert.False(t, nonDefaultLocation.Spec.Default)
|
assert.False(t, nonDefaultLocation.Spec.Default)
|
||||||
|
|
||||||
// no default location specified
|
// no default location specified
|
||||||
|
|
|
@ -14,7 +14,7 @@ func TestStringOfStringArray(t *testing.T) {
|
||||||
|
|
||||||
func TestSetOfStringArray(t *testing.T) {
|
func TestSetOfStringArray(t *testing.T) {
|
||||||
array := NewStringArray()
|
array := NewStringArray()
|
||||||
require.Nil(t, array.Set("a,b"))
|
require.NoError(t, array.Set("a,b"))
|
||||||
assert.Equal(t, "a,b", array.String())
|
assert.Equal(t, "a,b", array.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,9 +14,9 @@ func TestStringOfEnum(t *testing.T) {
|
||||||
|
|
||||||
func TestSetOfEnum(t *testing.T) {
|
func TestSetOfEnum(t *testing.T) {
|
||||||
enum := NewEnum("a", "a", "b", "c")
|
enum := NewEnum("a", "a", "b", "c")
|
||||||
assert.NotNil(t, enum.Set("d"))
|
assert.Error(t, enum.Set("d"))
|
||||||
|
|
||||||
require.Nil(t, enum.Set("b"))
|
require.NoError(t, enum.Set("b"))
|
||||||
assert.Equal(t, "b", enum.String())
|
assert.Equal(t, "b", enum.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import (
|
||||||
|
|
||||||
func TestStringOfLabelSelector(t *testing.T) {
|
func TestStringOfLabelSelector(t *testing.T) {
|
||||||
ls, err := metav1.ParseToLabelSelector("k1=v1,k2=v2")
|
ls, err := metav1.ParseToLabelSelector("k1=v1,k2=v2")
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
selector := &LabelSelector{
|
selector := &LabelSelector{
|
||||||
LabelSelector: ls,
|
LabelSelector: ls,
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ func TestStringOfLabelSelector(t *testing.T) {
|
||||||
|
|
||||||
func TestSetOfLabelSelector(t *testing.T) {
|
func TestSetOfLabelSelector(t *testing.T) {
|
||||||
selector := &LabelSelector{}
|
selector := &LabelSelector{}
|
||||||
require.Nil(t, selector.Set("k1=v1,k2=v2"))
|
require.NoError(t, selector.Set("k1=v1,k2=v2"))
|
||||||
str := selector.String()
|
str := selector.String()
|
||||||
assert.True(t, str == "k1=v1,k2=v2" || str == "k2=v2,k2=v2")
|
assert.True(t, str == "k1=v1,k2=v2" || str == "k2=v2,k2=v2")
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,7 +65,7 @@ func TestSetOfMap(t *testing.T) {
|
||||||
m := NewMap()
|
m := NewMap()
|
||||||
err := m.Set(c.input)
|
err := m.Set(c.input)
|
||||||
if c.error {
|
if c.error {
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
assert.EqualValues(t, c.expected, m.Data())
|
assert.EqualValues(t, c.expected, m.Data())
|
||||||
|
@ -75,7 +75,7 @@ func TestSetOfMap(t *testing.T) {
|
||||||
|
|
||||||
func TestStringOfMap(t *testing.T) {
|
func TestStringOfMap(t *testing.T) {
|
||||||
m := NewMap()
|
m := NewMap()
|
||||||
require.Nil(t, m.Set("k1=v1,k2=v2"))
|
require.NoError(t, m.Set("k1=v1,k2=v2"))
|
||||||
str := m.String()
|
str := m.String()
|
||||||
assert.True(t, str == "k1=v1,k2=v2" || str == "k2=v2,k1=v1")
|
assert.True(t, str == "k1=v1,k2=v2" || str == "k2=v2,k1=v1")
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,16 +25,16 @@ func TestStringOfOptionalBool(t *testing.T) {
|
||||||
func TestSetOfOptionalBool(t *testing.T) {
|
func TestSetOfOptionalBool(t *testing.T) {
|
||||||
// error
|
// error
|
||||||
ob := NewOptionalBool(nil)
|
ob := NewOptionalBool(nil)
|
||||||
assert.NotNil(t, ob.Set("invalid"))
|
assert.Error(t, ob.Set("invalid"))
|
||||||
|
|
||||||
// nil
|
// nil
|
||||||
ob = NewOptionalBool(nil)
|
ob = NewOptionalBool(nil)
|
||||||
assert.Nil(t, ob.Set(""))
|
assert.NoError(t, ob.Set(""))
|
||||||
assert.Nil(t, ob.Value)
|
assert.Nil(t, ob.Value)
|
||||||
|
|
||||||
// true
|
// true
|
||||||
ob = NewOptionalBool(nil)
|
ob = NewOptionalBool(nil)
|
||||||
assert.Nil(t, ob.Set("true"))
|
assert.NoError(t, ob.Set("true"))
|
||||||
assert.True(t, *ob.Value)
|
assert.True(t, *ob.Value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,7 @@ func TestSetOfOrLabelSelector(t *testing.T) {
|
||||||
selector := &OrLabelSelector{}
|
selector := &OrLabelSelector{}
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
require.Nil(t, selector.Set(test.inputStr))
|
require.NoError(t, selector.Set(test.inputStr))
|
||||||
assert.Equal(t, len(test.expectedSelector.OrLabelSelectors), len(selector.OrLabelSelectors))
|
assert.Equal(t, len(test.expectedSelector.OrLabelSelectors), len(selector.OrLabelSelectors))
|
||||||
assert.Equal(t, test.expectedSelector.String(), selector.String())
|
assert.Equal(t, test.expectedSelector.String(), selector.String())
|
||||||
})
|
})
|
||||||
|
|
|
@ -623,14 +623,14 @@ func TestDescribePodVolumeBackups(t *testing.T) {
|
||||||
|
|
||||||
func TestDescribeDeleteBackupRequests(t *testing.T) {
|
func TestDescribeDeleteBackupRequests(t *testing.T) {
|
||||||
t1, err1 := time.Parse("2006-Jan-02", "2023-Jun-26")
|
t1, err1 := time.Parse("2006-Jan-02", "2023-Jun-26")
|
||||||
require.Nil(t, err1)
|
require.NoError(t, err1)
|
||||||
dbr1 := builder.ForDeleteBackupRequest("velero", "dbr1").
|
dbr1 := builder.ForDeleteBackupRequest("velero", "dbr1").
|
||||||
ObjectMeta(builder.WithCreationTimestamp(t1)).
|
ObjectMeta(builder.WithCreationTimestamp(t1)).
|
||||||
BackupName("bak-1").
|
BackupName("bak-1").
|
||||||
Phase(velerov1api.DeleteBackupRequestPhaseProcessed).
|
Phase(velerov1api.DeleteBackupRequestPhaseProcessed).
|
||||||
Errors("some error").Result()
|
Errors("some error").Result()
|
||||||
t2, err2 := time.Parse("2006-Jan-02", "2023-Jun-25")
|
t2, err2 := time.Parse("2006-Jan-02", "2023-Jun-25")
|
||||||
require.Nil(t, err2)
|
require.NoError(t, err2)
|
||||||
dbr2 := builder.ForDeleteBackupRequest("velero", "dbr2").
|
dbr2 := builder.ForDeleteBackupRequest("velero", "dbr2").
|
||||||
ObjectMeta(builder.WithCreationTimestamp(t2)).
|
ObjectMeta(builder.WithCreationTimestamp(t2)).
|
||||||
BackupName("bak-2").
|
BackupName("bak-2").
|
||||||
|
@ -676,11 +676,11 @@ func TestDescribeDeleteBackupRequests(t *testing.T) {
|
||||||
|
|
||||||
func TestDescribeBackupItemOperation(t *testing.T) {
|
func TestDescribeBackupItemOperation(t *testing.T) {
|
||||||
t1, err1 := time.Parse("2006-Jan-02", "2023-Jun-26")
|
t1, err1 := time.Parse("2006-Jan-02", "2023-Jun-26")
|
||||||
require.Nil(t, err1)
|
require.NoError(t, err1)
|
||||||
t2, err2 := time.Parse("2006-Jan-02", "2023-Jun-25")
|
t2, err2 := time.Parse("2006-Jan-02", "2023-Jun-25")
|
||||||
require.Nil(t, err2)
|
require.NoError(t, err2)
|
||||||
t3, err3 := time.Parse("2006-Jan-02", "2023-Jun-24")
|
t3, err3 := time.Parse("2006-Jan-02", "2023-Jun-24")
|
||||||
require.Nil(t, err3)
|
require.NoError(t, err3)
|
||||||
input := builder.ForBackupOperation().
|
input := builder.ForBackupOperation().
|
||||||
BackupName("backup-1").
|
BackupName("backup-1").
|
||||||
OperationID("op-1").
|
OperationID("op-1").
|
||||||
|
|
|
@ -563,14 +563,14 @@ func TestDescribeBackupResultInSF(t *testing.T) {
|
||||||
|
|
||||||
func TestDescribeDeleteBackupRequestsInSF(t *testing.T) {
|
func TestDescribeDeleteBackupRequestsInSF(t *testing.T) {
|
||||||
t1, err1 := time.Parse("2006-Jan-02", "2023-Jun-26")
|
t1, err1 := time.Parse("2006-Jan-02", "2023-Jun-26")
|
||||||
require.Nil(t, err1)
|
require.NoError(t, err1)
|
||||||
dbr1 := builder.ForDeleteBackupRequest("velero", "dbr1").
|
dbr1 := builder.ForDeleteBackupRequest("velero", "dbr1").
|
||||||
ObjectMeta(builder.WithCreationTimestamp(t1)).
|
ObjectMeta(builder.WithCreationTimestamp(t1)).
|
||||||
BackupName("bak-1").
|
BackupName("bak-1").
|
||||||
Phase(velerov1api.DeleteBackupRequestPhaseProcessed).
|
Phase(velerov1api.DeleteBackupRequestPhaseProcessed).
|
||||||
Errors("some error").Result()
|
Errors("some error").Result()
|
||||||
t2, err2 := time.Parse("2006-Jan-02", "2023-Jun-25")
|
t2, err2 := time.Parse("2006-Jan-02", "2023-Jun-25")
|
||||||
require.Nil(t, err2)
|
require.NoError(t, err2)
|
||||||
dbr2 := builder.ForDeleteBackupRequest("velero", "dbr2").
|
dbr2 := builder.ForDeleteBackupRequest("velero", "dbr2").
|
||||||
ObjectMeta(builder.WithCreationTimestamp(t2)).
|
ObjectMeta(builder.WithCreationTimestamp(t2)).
|
||||||
BackupName("bak-2").
|
BackupName("bak-2").
|
||||||
|
|
|
@ -79,11 +79,11 @@ func TestDescribeResult(t *testing.T) {
|
||||||
|
|
||||||
func TestDescribeRestoreItemOperation(t *testing.T) {
|
func TestDescribeRestoreItemOperation(t *testing.T) {
|
||||||
t1, err1 := time.Parse("2006-Jan-02", "2023-Jun-26")
|
t1, err1 := time.Parse("2006-Jan-02", "2023-Jun-26")
|
||||||
require.Nil(t, err1)
|
require.NoError(t, err1)
|
||||||
t2, err2 := time.Parse("2006-Jan-02", "2023-Jun-25")
|
t2, err2 := time.Parse("2006-Jan-02", "2023-Jun-25")
|
||||||
require.Nil(t, err2)
|
require.NoError(t, err2)
|
||||||
t3, err3 := time.Parse("2006-Jan-02", "2023-Jun-24")
|
t3, err3 := time.Parse("2006-Jan-02", "2023-Jun-24")
|
||||||
require.Nil(t, err3)
|
require.NoError(t, err3)
|
||||||
input := builder.ForRestoreOperation().
|
input := builder.ForRestoreOperation().
|
||||||
RestoreName("restore-1").
|
RestoreName("restore-1").
|
||||||
OperationID("op-1").
|
OperationID("op-1").
|
||||||
|
|
|
@ -140,7 +140,7 @@ func TestProcessBackupNonProcessedItems(t *testing.T) {
|
||||||
}
|
}
|
||||||
actualResult, err := c.Reconcile(ctx, ctrl.Request{NamespacedName: types.NamespacedName{Namespace: test.backup.Namespace, Name: test.backup.Name}})
|
actualResult, err := c.Reconcile(ctx, ctrl.Request{NamespacedName: types.NamespacedName{Namespace: test.backup.Namespace, Name: test.backup.Name}})
|
||||||
assert.Equal(t, actualResult, ctrl.Result{})
|
assert.Equal(t, actualResult, ctrl.Result{})
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Any backup that would actually proceed to validation will cause a segfault because this
|
// Any backup that would actually proceed to validation will cause a segfault because this
|
||||||
// test hasn't set up the necessary controller dependencies for validation/etc. So the lack
|
// test hasn't set up the necessary controller dependencies for validation/etc. So the lack
|
||||||
|
@ -230,7 +230,7 @@ func TestProcessBackupValidationFailures(t *testing.T) {
|
||||||
|
|
||||||
actualResult, err := c.Reconcile(ctx, ctrl.Request{NamespacedName: types.NamespacedName{Namespace: test.backup.Namespace, Name: test.backup.Name}})
|
actualResult, err := c.Reconcile(ctx, ctrl.Request{NamespacedName: types.NamespacedName{Namespace: test.backup.Namespace, Name: test.backup.Name}})
|
||||||
assert.Equal(t, actualResult, ctrl.Result{})
|
assert.Equal(t, actualResult, ctrl.Result{})
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
res := &velerov1api.Backup{}
|
res := &velerov1api.Backup{}
|
||||||
err = c.kbClient.Get(context.Background(), kbclient.ObjectKey{Namespace: test.backup.Namespace, Name: test.backup.Name}, res)
|
err = c.kbClient.Get(context.Background(), kbclient.ObjectKey{Namespace: test.backup.Namespace, Name: test.backup.Name}, res)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
@ -1378,7 +1378,7 @@ func TestProcessBackupCompletions(t *testing.T) {
|
||||||
|
|
||||||
actualResult, err := c.Reconcile(ctx, ctrl.Request{NamespacedName: types.NamespacedName{Namespace: test.backup.Namespace, Name: test.backup.Name}})
|
actualResult, err := c.Reconcile(ctx, ctrl.Request{NamespacedName: types.NamespacedName{Namespace: test.backup.Namespace, Name: test.backup.Name}})
|
||||||
assert.Equal(t, actualResult, ctrl.Result{})
|
assert.Equal(t, actualResult, ctrl.Result{})
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Disable CSI feature to not impact other test cases.
|
// Disable CSI feature to not impact other test cases.
|
||||||
if test.enableCSI {
|
if test.enableCSI {
|
||||||
|
|
|
@ -125,7 +125,7 @@ func TestBackupDeletionControllerReconcile(t *testing.T) {
|
||||||
td := setupBackupDeletionControllerTest(t, defaultTestDbr(), location, backup)
|
td := setupBackupDeletionControllerTest(t, defaultTestDbr(), location, backup)
|
||||||
td.controller.backupStoreGetter = &fakeErrorBackupStoreGetter{}
|
td.controller.backupStoreGetter = &fakeErrorBackupStoreGetter{}
|
||||||
_, err := td.controller.Reconcile(ctx, td.req)
|
_, err := td.controller.Reconcile(ctx, td.req)
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
assert.True(t, strings.HasPrefix(err.Error(), "error getting the backup store"))
|
assert.True(t, strings.HasPrefix(err.Error(), "error getting the backup store"))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -358,7 +358,7 @@ func TestBackupDeletionControllerReconcile(t *testing.T) {
|
||||||
Namespace: velerov1api.DefaultNamespace,
|
Namespace: velerov1api.DefaultNamespace,
|
||||||
Name: "restore-3",
|
Name: "restore-3",
|
||||||
}, &velerov1api.Restore{})
|
}, &velerov1api.Restore{})
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
td.backupStore.AssertCalled(t, "DeleteBackup", input.Spec.BackupName)
|
td.backupStore.AssertCalled(t, "DeleteBackup", input.Spec.BackupName)
|
||||||
|
|
||||||
|
@ -479,7 +479,7 @@ func TestBackupDeletionControllerReconcile(t *testing.T) {
|
||||||
Namespace: velerov1api.DefaultNamespace,
|
Namespace: velerov1api.DefaultNamespace,
|
||||||
Name: "restore-3",
|
Name: "restore-3",
|
||||||
}, &velerov1api.Restore{})
|
}, &velerov1api.Restore{})
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
// Make sure snapshot was deleted
|
// Make sure snapshot was deleted
|
||||||
assert.Equal(t, 0, td.volumeSnapshotter.SnapshotsTaken.Len())
|
assert.Equal(t, 0, td.volumeSnapshotter.SnapshotsTaken.Len())
|
||||||
|
|
|
@ -238,7 +238,7 @@ func TestEnsureSingleDefaultBSL(t *testing.T) {
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
// Setup reconciler
|
// Setup reconciler
|
||||||
assert.Nil(t, velerov1api.AddToScheme(scheme.Scheme))
|
assert.NoError(t, velerov1api.AddToScheme(scheme.Scheme))
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
r := &backupStorageLocationReconciler{
|
r := &backupStorageLocationReconciler{
|
||||||
ctx: context.Background(),
|
ctx: context.Background(),
|
||||||
|
@ -282,7 +282,7 @@ func TestBSLReconcile(t *testing.T) {
|
||||||
pluginManager.On("CleanupClients").Return(nil)
|
pluginManager.On("CleanupClients").Return(nil)
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
// Setup reconciler
|
// Setup reconciler
|
||||||
assert.Nil(t, velerov1api.AddToScheme(scheme.Scheme))
|
assert.NoError(t, velerov1api.AddToScheme(scheme.Scheme))
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
r := &backupStorageLocationReconciler{
|
r := &backupStorageLocationReconciler{
|
||||||
ctx: context.Background(),
|
ctx: context.Background(),
|
||||||
|
|
|
@ -448,7 +448,7 @@ func TestDataDownloadReconcile(t *testing.T) {
|
||||||
if test.expectedStatusMsg != "" {
|
if test.expectedStatusMsg != "" {
|
||||||
assert.Contains(t, err.Error(), test.expectedStatusMsg)
|
assert.Contains(t, err.Error(), test.expectedStatusMsg)
|
||||||
} else {
|
} else {
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
require.NotNil(t, actualResult)
|
require.NotNil(t, actualResult)
|
||||||
|
@ -476,7 +476,7 @@ func TestDataDownloadReconcile(t *testing.T) {
|
||||||
if controllerutil.ContainsFinalizer(test.dd, DataUploadDownloadFinalizer) {
|
if controllerutil.ContainsFinalizer(test.dd, DataUploadDownloadFinalizer) {
|
||||||
assert.True(t, true, apierrors.IsNotFound(err))
|
assert.True(t, true, apierrors.IsNotFound(err))
|
||||||
} else {
|
} else {
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
assert.True(t, true, apierrors.IsNotFound(err))
|
assert.True(t, true, apierrors.IsNotFound(err))
|
||||||
|
|
|
@ -179,7 +179,7 @@ func TestProcessQueueItemSkips(t *testing.T) {
|
||||||
)
|
)
|
||||||
|
|
||||||
if test.restore != nil {
|
if test.restore != nil {
|
||||||
assert.Nil(t, fakeClient.Create(context.Background(), test.restore))
|
assert.NoError(t, fakeClient.Create(context.Background(), test.restore))
|
||||||
}
|
}
|
||||||
|
|
||||||
r := NewRestoreReconciler(
|
r := NewRestoreReconciler(
|
||||||
|
|
|
@ -39,7 +39,7 @@ import (
|
||||||
|
|
||||||
// Test reconcile function of schedule controller. Pause is not covered as event filter will not allow it through
|
// Test reconcile function of schedule controller. Pause is not covered as event filter will not allow it through
|
||||||
func TestReconcileOfSchedule(t *testing.T) {
|
func TestReconcileOfSchedule(t *testing.T) {
|
||||||
require.Nil(t, velerov1.AddToScheme(scheme.Scheme))
|
require.NoError(t, velerov1.AddToScheme(scheme.Scheme))
|
||||||
|
|
||||||
newScheduleBuilder := func(phase velerov1.SchedulePhase) *builder.ScheduleBuilder {
|
newScheduleBuilder := func(phase velerov1.SchedulePhase) *builder.ScheduleBuilder {
|
||||||
return builder.ForSchedule("ns", "name").Phase(phase)
|
return builder.ForSchedule("ns", "name").Phase(phase)
|
||||||
|
@ -169,39 +169,39 @@ func TestReconcileOfSchedule(t *testing.T) {
|
||||||
reconciler.clock = testclocks.NewFakeClock(testTime)
|
reconciler.clock = testclocks.NewFakeClock(testTime)
|
||||||
|
|
||||||
if test.schedule != nil {
|
if test.schedule != nil {
|
||||||
require.Nil(t, client.Create(ctx, test.schedule))
|
require.NoError(t, client.Create(ctx, test.schedule))
|
||||||
}
|
}
|
||||||
|
|
||||||
if test.backup != nil {
|
if test.backup != nil {
|
||||||
require.Nil(t, client.Create(ctx, test.backup))
|
require.NoError(t, client.Create(ctx, test.backup))
|
||||||
}
|
}
|
||||||
|
|
||||||
scheduleb4reconcile := &velerov1.Schedule{}
|
scheduleb4reconcile := &velerov1.Schedule{}
|
||||||
err = client.Get(ctx, types.NamespacedName{Namespace: "ns", Name: "name"}, scheduleb4reconcile)
|
err = client.Get(ctx, types.NamespacedName{Namespace: "ns", Name: "name"}, scheduleb4reconcile)
|
||||||
if test.schedule != nil {
|
if test.schedule != nil {
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = reconciler.Reconcile(ctx, ctrl.Request{NamespacedName: types.NamespacedName{Namespace: "ns", Name: "name"}})
|
_, err = reconciler.Reconcile(ctx, ctrl.Request{NamespacedName: types.NamespacedName{Namespace: "ns", Name: "name"}})
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
schedule := &velerov1.Schedule{}
|
schedule := &velerov1.Schedule{}
|
||||||
err = client.Get(ctx, types.NamespacedName{Namespace: "ns", Name: "name"}, schedule)
|
err = client.Get(ctx, types.NamespacedName{Namespace: "ns", Name: "name"}, schedule)
|
||||||
if len(test.expectedPhase) > 0 {
|
if len(test.expectedPhase) > 0 {
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, test.expectedPhase, string(schedule.Status.Phase))
|
assert.Equal(t, test.expectedPhase, string(schedule.Status.Phase))
|
||||||
}
|
}
|
||||||
if len(test.expectedValidationErrors) > 0 {
|
if len(test.expectedValidationErrors) > 0 {
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.EqualValues(t, test.expectedValidationErrors, schedule.Status.ValidationErrors)
|
assert.EqualValues(t, test.expectedValidationErrors, schedule.Status.ValidationErrors)
|
||||||
}
|
}
|
||||||
if len(test.expectedLastBackup) > 0 {
|
if len(test.expectedLastBackup) > 0 {
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.NotNil(t, schedule.Status.LastBackup)
|
require.NotNil(t, schedule.Status.LastBackup)
|
||||||
assert.Equal(t, parseTime(test.expectedLastBackup).Unix(), schedule.Status.LastBackup.Unix())
|
assert.Equal(t, parseTime(test.expectedLastBackup).Unix(), schedule.Status.LastBackup.Unix())
|
||||||
}
|
}
|
||||||
if len(test.expectedLastSkipped) > 0 {
|
if len(test.expectedLastSkipped) > 0 {
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.NotNil(t, schedule.Status.LastSkipped)
|
require.NotNil(t, schedule.Status.LastSkipped)
|
||||||
assert.Equal(t, parseTime(test.expectedLastSkipped).Unix(), schedule.Status.LastSkipped.Unix())
|
assert.Equal(t, parseTime(test.expectedLastSkipped).Unix(), schedule.Status.LastSkipped.Unix())
|
||||||
}
|
}
|
||||||
|
@ -213,17 +213,17 @@ func TestReconcileOfSchedule(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
backups := &velerov1.BackupList{}
|
backups := &velerov1.BackupList{}
|
||||||
require.Nil(t, client.List(ctx, backups))
|
require.NoError(t, client.List(ctx, backups))
|
||||||
|
|
||||||
// If backup associated with schedule's status is in New or InProgress,
|
// If backup associated with schedule's status is in New or InProgress,
|
||||||
// new backup shouldn't be submitted.
|
// new backup shouldn't be submitted.
|
||||||
if test.backup != nil &&
|
if test.backup != nil &&
|
||||||
(test.backup.Status.Phase == velerov1.BackupPhaseNew || test.backup.Status.Phase == velerov1.BackupPhaseInProgress) {
|
(test.backup.Status.Phase == velerov1.BackupPhaseNew || test.backup.Status.Phase == velerov1.BackupPhaseInProgress) {
|
||||||
assert.Len(t, backups.Items, 1)
|
assert.Len(t, backups.Items, 1)
|
||||||
require.Nil(t, client.Delete(ctx, test.backup))
|
require.NoError(t, client.Delete(ctx, test.backup))
|
||||||
}
|
}
|
||||||
|
|
||||||
require.Nil(t, client.List(ctx, backups))
|
require.NoError(t, client.List(ctx, backups))
|
||||||
|
|
||||||
if test.expectedBackupCreate == nil {
|
if test.expectedBackupCreate == nil {
|
||||||
assert.Empty(t, backups.Items)
|
assert.Empty(t, backups.Items)
|
||||||
|
@ -444,7 +444,7 @@ func TestGetBackup(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestCheckIfBackupInNewOrProgress(t *testing.T) {
|
func TestCheckIfBackupInNewOrProgress(t *testing.T) {
|
||||||
require.Nil(t, velerov1.AddToScheme(scheme.Scheme))
|
require.NoError(t, velerov1.AddToScheme(scheme.Scheme))
|
||||||
|
|
||||||
client := fake.NewClientBuilder().WithScheme(scheme.Scheme).Build()
|
client := fake.NewClientBuilder().WithScheme(scheme.Scheme).Build()
|
||||||
logger := velerotest.NewLogger()
|
logger := velerotest.NewLogger()
|
||||||
|
|
|
@ -194,9 +194,9 @@ func TestRefreshServerPreferredResources(t *testing.T) {
|
||||||
t.Run(test.name, func(t *testing.T) {
|
t.Run(test.name, func(t *testing.T) {
|
||||||
resources, err := refreshServerPreferredResources(fakeServer, logging.DefaultLogger(logrus.DebugLevel, formatFlag))
|
resources, err := refreshServerPreferredResources(fakeServer, logging.DefaultLogger(logrus.DebugLevel, formatFlag))
|
||||||
if test.returnError != nil {
|
if test.returnError != nil {
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
} else {
|
} else {
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, test.returnError, err)
|
assert.Equal(t, test.returnError, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -567,9 +567,9 @@ func TestHelper_refreshServerPreferredResources(t *testing.T) {
|
||||||
resources, err := refreshServerPreferredResources(fakeClient, logrus.New())
|
resources, err := refreshServerPreferredResources(fakeClient, logrus.New())
|
||||||
|
|
||||||
if tc.expectedErr != nil {
|
if tc.expectedErr != nil {
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
} else {
|
} else {
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
assert.NotNil(t, resources)
|
assert.NotNil(t, resources)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -622,9 +622,9 @@ func TestHelper_refreshServerGroupsAndResources(t *testing.T) {
|
||||||
serverGroups, serverResources, err := refreshServerGroupsAndResources(fakeClient, logrus.New())
|
serverGroups, serverResources, err := refreshServerGroupsAndResources(fakeClient, logrus.New())
|
||||||
|
|
||||||
if tc.expectedErr != nil {
|
if tc.expectedErr != nil {
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
} else {
|
} else {
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
assert.NotNil(t, serverGroups)
|
assert.NotNil(t, serverGroups)
|
||||||
assert.NotNil(t, serverResources)
|
assert.NotNil(t, serverResources)
|
||||||
}
|
}
|
||||||
|
@ -637,7 +637,7 @@ func TestHelper(t *testing.T) {
|
||||||
Fake: &clientgotesting.Fake{},
|
Fake: &clientgotesting.Fake{},
|
||||||
}
|
}
|
||||||
h, err := NewHelper(fakeDiscoveryClient, logrus.New())
|
h, err := NewHelper(fakeDiscoveryClient, logrus.New())
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
// All below calls put together for the implementation are empty or just very simple, and just want to cover testing
|
// All below calls put together for the implementation are empty or just very simple, and just want to cover testing
|
||||||
// If wanting to write unit tests for some functions could remove it and with writing new function alone
|
// If wanting to write unit tests for some functions could remove it and with writing new function alone
|
||||||
h.Resources()
|
h.Resources()
|
||||||
|
|
|
@ -50,10 +50,10 @@ func TestInstall(t *testing.T) {
|
||||||
).Build()
|
).Build()
|
||||||
|
|
||||||
resources := &unstructured.UnstructuredList{}
|
resources := &unstructured.UnstructuredList{}
|
||||||
require.Nil(t, appendUnstructured(resources, v1crds.CRDs[0]))
|
require.NoError(t, appendUnstructured(resources, v1crds.CRDs[0]))
|
||||||
require.Nil(t, appendUnstructured(resources, Namespace("velero")))
|
require.NoError(t, appendUnstructured(resources, Namespace("velero")))
|
||||||
|
|
||||||
assert.Nil(t, Install(factory, c, resources, os.Stdout))
|
assert.NoError(t, Install(factory, c, resources, os.Stdout))
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_crdsAreReady(t *testing.T) {
|
func Test_crdsAreReady(t *testing.T) {
|
||||||
|
@ -88,7 +88,7 @@ func Test_crdsAreReady(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(crd)
|
obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(crd)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
crds := []*unstructured.Unstructured{
|
crds := []*unstructured.Unstructured{
|
||||||
{
|
{
|
||||||
|
@ -97,7 +97,7 @@ func Test_crdsAreReady(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ready, err := crdsAreReady(c, crds)
|
ready, err := crdsAreReady(c, crds)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.True(t, ready)
|
assert.True(t, ready)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,7 +114,7 @@ func TestDeploymentIsReady(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(deployment)
|
obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(deployment)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
dc := &test.FakeDynamicClient{}
|
dc := &test.FakeDynamicClient{}
|
||||||
dc.On("Get", mock.Anything, mock.Anything).Return(&unstructured.Unstructured{Object: obj}, nil)
|
dc.On("Get", mock.Anything, mock.Anything).Return(&unstructured.Unstructured{Object: obj}, nil)
|
||||||
|
@ -123,7 +123,7 @@ func TestDeploymentIsReady(t *testing.T) {
|
||||||
factory.On("ClientForGroupVersionResource", mock.Anything, mock.Anything, mock.Anything).Return(dc, nil)
|
factory.On("ClientForGroupVersionResource", mock.Anything, mock.Anything, mock.Anything).Return(dc, nil)
|
||||||
|
|
||||||
ready, err := DeploymentIsReady(factory, "velero")
|
ready, err := DeploymentIsReady(factory, "velero")
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.True(t, ready)
|
assert.True(t, ready)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,7 +135,7 @@ func TestDaemonSetIsReady(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(daemonset)
|
obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(daemonset)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
dc := &test.FakeDynamicClient{}
|
dc := &test.FakeDynamicClient{}
|
||||||
dc.On("Get", mock.Anything, mock.Anything).Return(&unstructured.Unstructured{Object: obj}, nil)
|
dc.On("Get", mock.Anything, mock.Anything).Return(&unstructured.Unstructured{Object: obj}, nil)
|
||||||
|
@ -144,6 +144,6 @@ func TestDaemonSetIsReady(t *testing.T) {
|
||||||
factory.On("ClientForGroupVersionResource", mock.Anything, mock.Anything, mock.Anything).Return(dc, nil)
|
factory.On("ClientForGroupVersionResource", mock.Anything, mock.Anything, mock.Anything).Return(dc, nil)
|
||||||
|
|
||||||
ready, err := DaemonSetIsReady(factory, "velero")
|
ready, err := DaemonSetIsReady(factory, "velero")
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.True(t, ready)
|
assert.True(t, ready)
|
||||||
}
|
}
|
||||||
|
|
|
@ -427,7 +427,7 @@ func TestGetBackupVolumeSnapshots(t *testing.T) {
|
||||||
// volumesnapshots file containing invalid data should error
|
// volumesnapshots file containing invalid data should error
|
||||||
harness.objectStore.PutObject(harness.bucket, "backups/test-backup/test-backup-volumesnapshots.json.gz", newStringReadSeeker("foo"))
|
harness.objectStore.PutObject(harness.bucket, "backups/test-backup/test-backup-volumesnapshots.json.gz", newStringReadSeeker("foo"))
|
||||||
_, err = harness.GetBackupVolumeSnapshots("test-backup")
|
_, err = harness.GetBackupVolumeSnapshots("test-backup")
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
// volumesnapshots file containing gzipped json data should return correctly
|
// volumesnapshots file containing gzipped json data should return correctly
|
||||||
snapshots := []*volume.Snapshot{
|
snapshots := []*volume.Snapshot{
|
||||||
|
@ -469,7 +469,7 @@ func TestGetBackupItemOperations(t *testing.T) {
|
||||||
// itemoperations file containing invalid data should error
|
// itemoperations file containing invalid data should error
|
||||||
harness.objectStore.PutObject(harness.bucket, "backups/test-backup/test-backup-itemoperations.json.gz", newStringReadSeeker("foo"))
|
harness.objectStore.PutObject(harness.bucket, "backups/test-backup/test-backup-itemoperations.json.gz", newStringReadSeeker("foo"))
|
||||||
_, err = harness.GetBackupItemOperations("test-backup")
|
_, err = harness.GetBackupItemOperations("test-backup")
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
// itemoperations file containing gzipped json data should return correctly
|
// itemoperations file containing gzipped json data should return correctly
|
||||||
operations := []*itemoperation.BackupOperation{
|
operations := []*itemoperation.BackupOperation{
|
||||||
|
@ -518,7 +518,7 @@ func TestGetRestoreItemOperations(t *testing.T) {
|
||||||
// itemoperations file containing invalid data should error
|
// itemoperations file containing invalid data should error
|
||||||
harness.objectStore.PutObject(harness.bucket, "restores/test-restore/restore-test-restore-itemoperations.json.gz", newStringReadSeeker("foo"))
|
harness.objectStore.PutObject(harness.bucket, "restores/test-restore/restore-test-restore-itemoperations.json.gz", newStringReadSeeker("foo"))
|
||||||
_, err = harness.GetRestoreItemOperations("test-restore")
|
_, err = harness.GetRestoreItemOperations("test-restore")
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
// itemoperations file containing gzipped json data should return correctly
|
// itemoperations file containing gzipped json data should return correctly
|
||||||
operations := []*itemoperation.RestoreOperation{
|
operations := []*itemoperation.RestoreOperation{
|
||||||
|
@ -806,7 +806,7 @@ func TestGetCSIVolumeSnapshotClasses(t *testing.T) {
|
||||||
// file containing invalid data should error
|
// file containing invalid data should error
|
||||||
harness.objectStore.PutObject(harness.bucket, "backups/test-backup/test-backup-csi-volumesnapshotclasses.json.gz", newStringReadSeeker("foo"))
|
harness.objectStore.PutObject(harness.bucket, "backups/test-backup/test-backup-csi-volumesnapshotclasses.json.gz", newStringReadSeeker("foo"))
|
||||||
_, err = harness.GetCSIVolumeSnapshotClasses("test-backup")
|
_, err = harness.GetCSIVolumeSnapshotClasses("test-backup")
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
// file containing gzipped json data should return correctly
|
// file containing gzipped json data should return correctly
|
||||||
classes := []*snapshotv1api.VolumeSnapshotClass{
|
classes := []*snapshotv1api.VolumeSnapshotClass{
|
||||||
|
@ -838,7 +838,7 @@ func TestGetCSIVolumeSnapshots(t *testing.T) {
|
||||||
// file containing invalid data should error
|
// file containing invalid data should error
|
||||||
harness.objectStore.PutObject(harness.bucket, "backups/test-backup/test-backup-csi-volumesnapshots.json.gz", newStringReadSeeker("foo"))
|
harness.objectStore.PutObject(harness.bucket, "backups/test-backup/test-backup-csi-volumesnapshots.json.gz", newStringReadSeeker("foo"))
|
||||||
_, err = harness.GetCSIVolumeSnapshots("test-backup")
|
_, err = harness.GetCSIVolumeSnapshots("test-backup")
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
// file containing gzipped json data should return correctly
|
// file containing gzipped json data should return correctly
|
||||||
snapshots := []*snapshotv1api.VolumeSnapshot{
|
snapshots := []*snapshotv1api.VolumeSnapshot{
|
||||||
|
@ -874,7 +874,7 @@ func TestGetCSIVolumeSnapshotContents(t *testing.T) {
|
||||||
// file containing invalid data should error
|
// file containing invalid data should error
|
||||||
harness.objectStore.PutObject(harness.bucket, "backups/test-backup/test-backup-csi-volumesnapshotcontents.json.gz", newStringReadSeeker("foo"))
|
harness.objectStore.PutObject(harness.bucket, "backups/test-backup/test-backup-csi-volumesnapshotcontents.json.gz", newStringReadSeeker("foo"))
|
||||||
_, err = harness.GetCSIVolumeSnapshotContents("test-backup")
|
_, err = harness.GetCSIVolumeSnapshotContents("test-backup")
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
// file containing gzipped json data should return correctly
|
// file containing gzipped json data should return correctly
|
||||||
contents := []*snapshotv1api.VolumeSnapshotContent{
|
contents := []*snapshotv1api.VolumeSnapshotContent{
|
||||||
|
@ -986,7 +986,7 @@ func TestNewObjectBackupStoreGetter(t *testing.T) {
|
||||||
if tc.wantErr != "" {
|
if tc.wantErr != "" {
|
||||||
require.EqualError(t, err, tc.wantErr)
|
require.EqualError(t, err, tc.wantErr)
|
||||||
} else {
|
} else {
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
store, ok := res.(*objectBackupStore)
|
store, ok := res.(*objectBackupStore)
|
||||||
require.True(t, ok)
|
require.True(t, ok)
|
||||||
|
@ -1155,7 +1155,7 @@ func TestGetRestoreResults(t *testing.T) {
|
||||||
// file containing invalid data should error
|
// file containing invalid data should error
|
||||||
harness.objectStore.PutObject(harness.bucket, "restores/test-restore/restore-test-restore-results.gz", newStringReadSeeker("foo"))
|
harness.objectStore.PutObject(harness.bucket, "restores/test-restore/restore-test-restore-results.gz", newStringReadSeeker("foo"))
|
||||||
_, err = harness.GetRestoreResults("test-restore")
|
_, err = harness.GetRestoreResults("test-restore")
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
// file containing gzipped json data should return correctly
|
// file containing gzipped json data should return correctly
|
||||||
contents := map[string]results.Result{
|
contents := map[string]results.Result{
|
||||||
|
@ -1185,7 +1185,7 @@ func TestGetRestoredResourceList(t *testing.T) {
|
||||||
// file containing invalid data should error
|
// file containing invalid data should error
|
||||||
harness.objectStore.PutObject(harness.bucket, "restores/test-restore/restore-test-restore-resource-list.json.gz", newStringReadSeeker("foo"))
|
harness.objectStore.PutObject(harness.bucket, "restores/test-restore/restore-test-restore-resource-list.json.gz", newStringReadSeeker("foo"))
|
||||||
_, err = harness.GetRestoredResourceList("test-restore")
|
_, err = harness.GetRestoredResourceList("test-restore")
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
|
|
||||||
// file containing gzipped json data should return correctly
|
// file containing gzipped json data should return correctly
|
||||||
list := map[string][]string{
|
list := map[string][]string{
|
||||||
|
|
|
@ -61,6 +61,6 @@ func TestStreamReader(t *testing.T) {
|
||||||
|
|
||||||
res, err := io.ReadAll(sr)
|
res, err := io.ReadAll(sr)
|
||||||
|
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, s, string(res))
|
assert.Equal(t, s, string(res))
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,7 +51,7 @@ func TestIsHostPathVolume(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
isHostPath, err := isHostPathVolume(vol, nil, nil)
|
isHostPath, err := isHostPathVolume(vol, nil, nil)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
assert.True(t, isHostPath)
|
assert.True(t, isHostPath)
|
||||||
|
|
||||||
// non-hostPath pod volume
|
// non-hostPath pod volume
|
||||||
|
@ -61,7 +61,7 @@ func TestIsHostPathVolume(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
isHostPath, err = isHostPathVolume(vol, nil, nil)
|
isHostPath, err = isHostPathVolume(vol, nil, nil)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
assert.False(t, isHostPath)
|
assert.False(t, isHostPath)
|
||||||
|
|
||||||
// PVC that doesn't have a PV
|
// PVC that doesn't have a PV
|
||||||
|
@ -79,7 +79,7 @@ func TestIsHostPathVolume(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
isHostPath, err = isHostPathVolume(vol, pvc, nil)
|
isHostPath, err = isHostPathVolume(vol, pvc, nil)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
assert.False(t, isHostPath)
|
assert.False(t, isHostPath)
|
||||||
|
|
||||||
// PVC that claims a non-hostPath PV
|
// PVC that claims a non-hostPath PV
|
||||||
|
@ -107,7 +107,7 @@ func TestIsHostPathVolume(t *testing.T) {
|
||||||
}
|
}
|
||||||
crClient1 := velerotest.NewFakeControllerRuntimeClient(t, pv)
|
crClient1 := velerotest.NewFakeControllerRuntimeClient(t, pv)
|
||||||
isHostPath, err = isHostPathVolume(vol, pvc, crClient1)
|
isHostPath, err = isHostPathVolume(vol, pvc, crClient1)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
assert.False(t, isHostPath)
|
assert.False(t, isHostPath)
|
||||||
|
|
||||||
// PVC that claims a hostPath PV
|
// PVC that claims a hostPath PV
|
||||||
|
@ -140,7 +140,7 @@ func TestIsHostPathVolume(t *testing.T) {
|
||||||
crClient2 := velerotest.NewFakeControllerRuntimeClient(t, pv)
|
crClient2 := velerotest.NewFakeControllerRuntimeClient(t, pv)
|
||||||
|
|
||||||
isHostPath, err = isHostPathVolume(vol, pvc, crClient2)
|
isHostPath, err = isHostPathVolume(vol, pvc, crClient2)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
assert.True(t, isHostPath)
|
assert.True(t, isHostPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -632,11 +632,11 @@ func TestWaitAllPodVolumesProcessed(t *testing.T) {
|
||||||
if c.statusToBeUpdated != nil {
|
if c.statusToBeUpdated != nil {
|
||||||
pvb := &velerov1api.PodVolumeBackup{}
|
pvb := &velerov1api.PodVolumeBackup{}
|
||||||
err := client.Get(context.Background(), ctrlclient.ObjectKey{Namespace: newPVB.Namespace, Name: newPVB.Name}, pvb)
|
err := client.Get(context.Background(), ctrlclient.ObjectKey{Namespace: newPVB.Namespace, Name: newPVB.Name}, pvb)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
pvb.Status = *c.statusToBeUpdated
|
pvb.Status = *c.statusToBeUpdated
|
||||||
err = client.Update(context.Background(), pvb)
|
err = client.Update(context.Background(), pvb)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
pvbs := backuper.WaitAllPodVolumesProcessed(logger)
|
pvbs := backuper.WaitAllPodVolumesProcessed(logger)
|
||||||
|
|
|
@ -29,22 +29,22 @@ func TestGetAzureResticEnvVars(t *testing.T) {
|
||||||
|
|
||||||
// no storage account specified
|
// no storage account specified
|
||||||
_, err := GetAzureResticEnvVars(config)
|
_, err := GetAzureResticEnvVars(config)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
|
|
||||||
// specify storage account access key
|
// specify storage account access key
|
||||||
name := filepath.Join(os.TempDir(), "credential")
|
name := filepath.Join(os.TempDir(), "credential")
|
||||||
file, err := os.Create(name)
|
file, err := os.Create(name)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
defer os.Remove(name)
|
defer os.Remove(name)
|
||||||
_, err = file.WriteString("AccessKey: accesskey")
|
_, err = file.WriteString("AccessKey: accesskey")
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
config[azure.BSLConfigStorageAccount] = "account01"
|
config[azure.BSLConfigStorageAccount] = "account01"
|
||||||
config[azure.BSLConfigStorageAccountAccessKeyName] = "AccessKey"
|
config[azure.BSLConfigStorageAccountAccessKeyName] = "AccessKey"
|
||||||
config["credentialsFile"] = name
|
config["credentialsFile"] = name
|
||||||
envs, err := GetAzureResticEnvVars(config)
|
envs, err := GetAzureResticEnvVars(config)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
assert.Equal(t, "account01", envs["AZURE_ACCOUNT_NAME"])
|
assert.Equal(t, "account01", envs["AZURE_ACCOUNT_NAME"])
|
||||||
assert.Equal(t, "accesskey", envs["AZURE_ACCOUNT_KEY"])
|
assert.Equal(t, "accesskey", envs["AZURE_ACCOUNT_KEY"])
|
||||||
|
|
|
@ -33,17 +33,17 @@ func TestGetRepositoryProvider(t *testing.T) {
|
||||||
|
|
||||||
// empty repository type
|
// empty repository type
|
||||||
provider, err := mgr.getRepositoryProvider(repo)
|
provider, err := mgr.getRepositoryProvider(repo)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.NotNil(t, provider)
|
assert.NotNil(t, provider)
|
||||||
|
|
||||||
// valid repository type
|
// valid repository type
|
||||||
repo.Spec.RepositoryType = velerov1.BackupRepositoryTypeRestic
|
repo.Spec.RepositoryType = velerov1.BackupRepositoryTypeRestic
|
||||||
provider, err = mgr.getRepositoryProvider(repo)
|
provider, err = mgr.getRepositoryProvider(repo)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.NotNil(t, provider)
|
assert.NotNil(t, provider)
|
||||||
|
|
||||||
// invalid repository type
|
// invalid repository type
|
||||||
repo.Spec.RepositoryType = "unknown"
|
repo.Spec.RepositoryType = "unknown"
|
||||||
_, err = mgr.getRepositoryProvider(repo)
|
_, err = mgr.getRepositoryProvider(repo)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ func TestAzureSetup(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
err := backend.Setup(context.Background(), flags)
|
err := backend.Setup(context.Background(), flags)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, flags, backend.option.Config)
|
assert.Equal(t, flags, backend.option.Config)
|
||||||
assert.Equal(t, limits, backend.option.Limits)
|
assert.Equal(t, limits, backend.option.Limits)
|
||||||
}
|
}
|
||||||
|
|
|
@ -186,26 +186,26 @@ func TestNewAdmissionWebhookConfigurationActionExecute(t *testing.T) {
|
||||||
}
|
}
|
||||||
output, err := action.Execute(input)
|
output, err := action.Execute(input)
|
||||||
if tt.wantErr {
|
if tt.wantErr {
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
} else {
|
} else {
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
if tt.NoneSideEffectsIndex != nil {
|
if tt.NoneSideEffectsIndex != nil {
|
||||||
wb, _, err := unstructured.NestedSlice(output.UpdatedItem.UnstructuredContent(), "webhooks")
|
wb, _, err := unstructured.NestedSlice(output.UpdatedItem.UnstructuredContent(), "webhooks")
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
for _, i := range tt.NoneSideEffectsIndex {
|
for _, i := range tt.NoneSideEffectsIndex {
|
||||||
it, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&wb[i])
|
it, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&wb[i])
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
s := it["sideEffects"].(string)
|
s := it["sideEffects"].(string)
|
||||||
assert.Equal(t, "None", s)
|
assert.Equal(t, "None", s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if tt.NotNoneSideEffectsIndex != nil {
|
if tt.NotNoneSideEffectsIndex != nil {
|
||||||
wb, _, err := unstructured.NestedSlice(output.UpdatedItem.UnstructuredContent(), "webhooks")
|
wb, _, err := unstructured.NestedSlice(output.UpdatedItem.UnstructuredContent(), "webhooks")
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
for _, i := range tt.NotNoneSideEffectsIndex {
|
for _, i := range tt.NotNoneSideEffectsIndex {
|
||||||
it, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&wb[i])
|
it, err := runtime.DefaultUnstructuredConverter.ToUnstructured(&wb[i])
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
s := it["sideEffects"].(string)
|
s := it["sideEffects"].(string)
|
||||||
assert.NotEqual(t, "None", s)
|
assert.NotEqual(t, "None", s)
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,10 +131,10 @@ func TestInitContainerRestoreHookPodActionExecute(t *testing.T) {
|
||||||
Restore: tc.restore,
|
Restore: tc.restore,
|
||||||
})
|
})
|
||||||
if tc.expectedErr {
|
if tc.expectedErr {
|
||||||
assert.NotNil(t, err, "expected an error")
|
assert.Error(t, err, "expected an error")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
assert.Nil(t, err, "expected no error, got %v", err)
|
assert.NoError(t, err, "expected no error, got %v", err)
|
||||||
|
|
||||||
var pod corev1api.Pod
|
var pod corev1api.Pod
|
||||||
require.NoError(t, runtime.DefaultUnstructuredConverter.FromUnstructured(res.UpdatedItem.UnstructuredContent(), &pod))
|
require.NoError(t, runtime.DefaultUnstructuredConverter.FromUnstructured(res.UpdatedItem.UnstructuredContent(), &pod))
|
||||||
|
|
|
@ -236,10 +236,10 @@ func TestPodActionExecute(t *testing.T) {
|
||||||
})
|
})
|
||||||
|
|
||||||
if test.expectedErr {
|
if test.expectedErr {
|
||||||
assert.NotNil(t, err, "expected an error")
|
assert.Error(t, err, "expected an error")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
assert.Nil(t, err, "expected no error, got %v", err)
|
assert.NoError(t, err, "expected no error, got %v", err)
|
||||||
|
|
||||||
var pod corev1api.Pod
|
var pod corev1api.Pod
|
||||||
require.NoError(t, runtime.DefaultUnstructuredConverter.FromUnstructured(res.UpdatedItem.UnstructuredContent(), &pod))
|
require.NoError(t, runtime.DefaultUnstructuredConverter.FromUnstructured(res.UpdatedItem.UnstructuredContent(), &pod))
|
||||||
|
|
|
@ -100,9 +100,9 @@ func TestSetOfPriority(t *testing.T) {
|
||||||
p := Priorities{}
|
p := Priorities{}
|
||||||
err := p.Set(c.input)
|
err := p.Set(c.input)
|
||||||
if c.hasErr {
|
if c.hasErr {
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
} else {
|
} else {
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
assert.Equal(t, c.priorities, p)
|
assert.Equal(t, c.priorities, p)
|
||||||
})
|
})
|
||||||
|
|
|
@ -135,10 +135,10 @@ func TestExecutePVAction_NoSnapshotRestores(t *testing.T) {
|
||||||
switch tc.expectedErr {
|
switch tc.expectedErr {
|
||||||
case true:
|
case true:
|
||||||
assert.Nil(t, res)
|
assert.Nil(t, res)
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
case false:
|
case false:
|
||||||
assert.Equal(t, tc.expectedRes, res)
|
assert.Equal(t, tc.expectedRes, res)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -2316,11 +2316,11 @@ func TestShouldRestore(t *testing.T) {
|
||||||
res, err := ctx.shouldRestore(tc.pvName, pvClient)
|
res, err := ctx.shouldRestore(tc.pvName, pvClient)
|
||||||
assert.Equal(t, tc.want, res)
|
assert.Equal(t, tc.want, res)
|
||||||
if tc.wantErr != nil {
|
if tc.wantErr != nil {
|
||||||
if assert.NotNil(t, err, "expected a non-nil error") {
|
if assert.Error(t, err, "expected a non-nil error") {
|
||||||
assert.EqualError(t, err, tc.wantErr.Error())
|
assert.EqualError(t, err, tc.wantErr.Error())
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,7 +114,7 @@ func TestOpenObject(t *testing.T) {
|
||||||
assert.Nil(t, reader)
|
assert.Nil(t, reader)
|
||||||
} else {
|
} else {
|
||||||
assert.NotNil(t, reader)
|
assert.NotNil(t, reader)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -153,7 +153,7 @@ func TestFindManifests(t *testing.T) {
|
||||||
if tc.isGetManifestError {
|
if tc.isGetManifestError {
|
||||||
assert.Contains(t, err.Error(), "failed")
|
assert.Contains(t, err.Error(), "failed")
|
||||||
} else {
|
} else {
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -562,7 +562,7 @@ func TestFindPreviousSnapshotManifest(t *testing.T) {
|
||||||
if tc.expectedError != nil {
|
if tc.expectedError != nil {
|
||||||
assert.Contains(t, err.Error(), tc.expectedError.Error())
|
assert.Contains(t, err.Error(), tc.expectedError.Error())
|
||||||
} else {
|
} else {
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check the number of returned snapshots
|
// Check the number of returned snapshots
|
||||||
|
@ -655,7 +655,7 @@ func TestBackup(t *testing.T) {
|
||||||
if tc.expectedError != nil {
|
if tc.expectedError != nil {
|
||||||
assert.Contains(t, err.Error(), tc.expectedError.Error())
|
assert.Contains(t, err.Error(), tc.expectedError.Error())
|
||||||
} else {
|
} else {
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
assert.Equal(t, tc.expectedEmpty, isSnapshotEmpty)
|
assert.Equal(t, tc.expectedEmpty, isSnapshotEmpty)
|
||||||
|
@ -794,7 +794,7 @@ func TestRestore(t *testing.T) {
|
||||||
if tc.expectedError != nil {
|
if tc.expectedError != nil {
|
||||||
assert.Contains(t, err.Error(), tc.expectedError.Error())
|
assert.Contains(t, err.Error(), tc.expectedError.Error())
|
||||||
} else {
|
} else {
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check the number of bytes restored
|
// Check the number of bytes restored
|
||||||
|
|
|
@ -382,7 +382,7 @@ func TestNewKopiaUploaderProvider(t *testing.T) {
|
||||||
if tc.expectedError != "" {
|
if tc.expectedError != "" {
|
||||||
assert.Contains(t, err.Error(), tc.expectedError)
|
assert.Contains(t, err.Error(), tc.expectedError)
|
||||||
} else {
|
} else {
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify that the expected methods were called on the mocks.
|
// Verify that the expected methods were called on the mocks.
|
||||||
|
|
|
@ -88,7 +88,7 @@ func TestNewUploaderProvider(t *testing.T) {
|
||||||
}
|
}
|
||||||
_, err := NewUploaderProvider(ctx, client, testCase.UploaderType, testCase.RequestorType, repoIdentifier, bsl, backupRepo, credGetter, repoKeySelector, log)
|
_, err := NewUploaderProvider(ctx, client, testCase.UploaderType, testCase.RequestorType, repoIdentifier, bsl, backupRepo, credGetter, repoKeySelector, log)
|
||||||
if testCase.ExpectedError == "" {
|
if testCase.ExpectedError == "" {
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
} else {
|
} else {
|
||||||
assert.Contains(t, err.Error(), testCase.ExpectedError)
|
assert.Contains(t, err.Error(), testCase.ExpectedError)
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ func TestNewCredential(t *testing.T) {
|
||||||
CredentialKeyClientSecret: "secret",
|
CredentialKeyClientSecret: "secret",
|
||||||
}
|
}
|
||||||
_, err := NewCredential(creds, options)
|
_, err := NewCredential(creds, options)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
|
|
||||||
// valid client secret credential
|
// valid client secret credential
|
||||||
creds = map[string]string{
|
creds = map[string]string{
|
||||||
|
@ -44,19 +44,19 @@ func TestNewCredential(t *testing.T) {
|
||||||
CredentialKeyClientSecret: "secret",
|
CredentialKeyClientSecret: "secret",
|
||||||
}
|
}
|
||||||
tokenCredential, err := NewCredential(creds, options)
|
tokenCredential, err := NewCredential(creds, options)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.IsType(t, &azidentity.ClientSecretCredential{}, tokenCredential)
|
assert.IsType(t, &azidentity.ClientSecretCredential{}, tokenCredential)
|
||||||
|
|
||||||
// client certificate credential
|
// client certificate credential
|
||||||
certData, err := readCertData()
|
certData, err := readCertData()
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
creds = map[string]string{
|
creds = map[string]string{
|
||||||
CredentialKeyTenantID: "tenantid",
|
CredentialKeyTenantID: "tenantid",
|
||||||
CredentialKeyClientID: "clientid",
|
CredentialKeyClientID: "clientid",
|
||||||
CredentialKeyClientCertificate: certData,
|
CredentialKeyClientCertificate: certData,
|
||||||
}
|
}
|
||||||
tokenCredential, err = NewCredential(creds, options)
|
tokenCredential, err = NewCredential(creds, options)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.IsType(t, &azidentity.ClientCertificateCredential{}, tokenCredential)
|
assert.IsType(t, &azidentity.ClientCertificateCredential{}, tokenCredential)
|
||||||
|
|
||||||
// workload identity credential
|
// workload identity credential
|
||||||
|
@ -65,14 +65,14 @@ func TestNewCredential(t *testing.T) {
|
||||||
os.Setenv("AZURE_FEDERATED_TOKEN_FILE", "/tmp/token")
|
os.Setenv("AZURE_FEDERATED_TOKEN_FILE", "/tmp/token")
|
||||||
creds = map[string]string{}
|
creds = map[string]string{}
|
||||||
tokenCredential, err = NewCredential(creds, options)
|
tokenCredential, err = NewCredential(creds, options)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.IsType(t, &azidentity.WorkloadIdentityCredential{}, tokenCredential)
|
assert.IsType(t, &azidentity.WorkloadIdentityCredential{}, tokenCredential)
|
||||||
os.Clearenv()
|
os.Clearenv()
|
||||||
|
|
||||||
// managed identity credential
|
// managed identity credential
|
||||||
creds = map[string]string{}
|
creds = map[string]string{}
|
||||||
tokenCredential, err = NewCredential(creds, options)
|
tokenCredential, err = NewCredential(creds, options)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.IsType(t, &azidentity.ManagedIdentityCredential{}, tokenCredential)
|
assert.IsType(t, &azidentity.ManagedIdentityCredential{}, tokenCredential)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,14 +82,14 @@ func Test_newConfigCredential(t *testing.T) {
|
||||||
// tenantID not specified
|
// tenantID not specified
|
||||||
creds := map[string]string{}
|
creds := map[string]string{}
|
||||||
_, err := newConfigCredential(creds, options)
|
_, err := newConfigCredential(creds, options)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
|
|
||||||
// clientID not specified
|
// clientID not specified
|
||||||
creds = map[string]string{
|
creds = map[string]string{
|
||||||
CredentialKeyTenantID: "clientid",
|
CredentialKeyTenantID: "clientid",
|
||||||
}
|
}
|
||||||
_, err = newConfigCredential(creds, options)
|
_, err = newConfigCredential(creds, options)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
|
|
||||||
// client secret
|
// client secret
|
||||||
creds = map[string]string{
|
creds = map[string]string{
|
||||||
|
@ -98,21 +98,21 @@ func Test_newConfigCredential(t *testing.T) {
|
||||||
CredentialKeyClientSecret: "secret",
|
CredentialKeyClientSecret: "secret",
|
||||||
}
|
}
|
||||||
credential, err := newConfigCredential(creds, options)
|
credential, err := newConfigCredential(creds, options)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.NotNil(t, credential)
|
require.NotNil(t, credential)
|
||||||
_, ok := credential.(*azidentity.ClientSecretCredential)
|
_, ok := credential.(*azidentity.ClientSecretCredential)
|
||||||
require.True(t, ok)
|
require.True(t, ok)
|
||||||
|
|
||||||
// client certificate
|
// client certificate
|
||||||
certData, err := readCertData()
|
certData, err := readCertData()
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
creds = map[string]string{
|
creds = map[string]string{
|
||||||
CredentialKeyTenantID: "clientid",
|
CredentialKeyTenantID: "clientid",
|
||||||
CredentialKeyClientID: "clientid",
|
CredentialKeyClientID: "clientid",
|
||||||
CredentialKeyClientCertificate: certData,
|
CredentialKeyClientCertificate: certData,
|
||||||
}
|
}
|
||||||
credential, err = newConfigCredential(creds, options)
|
credential, err = newConfigCredential(creds, options)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.NotNil(t, credential)
|
require.NotNil(t, credential)
|
||||||
_, ok = credential.(*azidentity.ClientCertificateCredential)
|
_, ok = credential.(*azidentity.ClientCertificateCredential)
|
||||||
require.True(t, ok)
|
require.True(t, ok)
|
||||||
|
@ -125,7 +125,7 @@ func Test_newConfigCredential(t *testing.T) {
|
||||||
CredentialKeyPassword: "password",
|
CredentialKeyPassword: "password",
|
||||||
}
|
}
|
||||||
credential, err = newConfigCredential(creds, options)
|
credential, err = newConfigCredential(creds, options)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
require.NotNil(t, credential)
|
require.NotNil(t, credential)
|
||||||
_, ok = credential.(*azidentity.UsernamePasswordCredential)
|
_, ok = credential.(*azidentity.UsernamePasswordCredential)
|
||||||
require.True(t, ok)
|
require.True(t, ok)
|
||||||
|
|
|
@ -32,15 +32,15 @@ func TestNewStorageClient(t *testing.T) {
|
||||||
|
|
||||||
name := filepath.Join(os.TempDir(), "credential")
|
name := filepath.Join(os.TempDir(), "credential")
|
||||||
file, err := os.Create(name)
|
file, err := os.Create(name)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
defer os.Remove(name)
|
defer os.Remove(name)
|
||||||
_, err = file.WriteString("AccessKey: YWNjZXNza2V5\nAZURE_TENANT_ID: tenantid\nAZURE_CLIENT_ID: clientid\nAZURE_CLIENT_SECRET: secret")
|
_, err = file.WriteString("AccessKey: YWNjZXNza2V5\nAZURE_TENANT_ID: tenantid\nAZURE_CLIENT_ID: clientid\nAZURE_CLIENT_SECRET: secret")
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
// storage account isn't specified
|
// storage account isn't specified
|
||||||
_, _, err = NewStorageClient(log, config)
|
_, _, err = NewStorageClient(log, config)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
|
|
||||||
// auth with storage account access key
|
// auth with storage account access key
|
||||||
config = map[string]string{
|
config = map[string]string{
|
||||||
|
@ -49,7 +49,7 @@ func TestNewStorageClient(t *testing.T) {
|
||||||
BSLConfigStorageAccountAccessKeyName: "AccessKey",
|
BSLConfigStorageAccountAccessKeyName: "AccessKey",
|
||||||
}
|
}
|
||||||
client, credential, err := NewStorageClient(log, config)
|
client, credential, err := NewStorageClient(log, config)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.NotNil(t, client)
|
assert.NotNil(t, client)
|
||||||
assert.NotNil(t, credential)
|
assert.NotNil(t, credential)
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ func TestNewStorageClient(t *testing.T) {
|
||||||
"useAAD": "true",
|
"useAAD": "true",
|
||||||
}
|
}
|
||||||
client, credential, err = NewStorageClient(log, config)
|
client, credential, err = NewStorageClient(log, config)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.NotNil(t, client)
|
assert.NotNil(t, client)
|
||||||
assert.Nil(t, credential)
|
assert.Nil(t, credential)
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,7 @@ func TestGetStorageAccountCredentials(t *testing.T) {
|
||||||
}
|
}
|
||||||
creds := map[string]string{}
|
creds := map[string]string{}
|
||||||
_, err := GetStorageAccountCredentials(cfg, creds)
|
_, err := GetStorageAccountCredentials(cfg, creds)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
|
|
||||||
// use access secret
|
// use access secret
|
||||||
cfg = map[string]string{
|
cfg = map[string]string{
|
||||||
|
@ -82,7 +82,7 @@ func TestGetStorageAccountCredentials(t *testing.T) {
|
||||||
"KEY": "key",
|
"KEY": "key",
|
||||||
}
|
}
|
||||||
m, err := GetStorageAccountCredentials(cfg, creds)
|
m, err := GetStorageAccountCredentials(cfg, creds)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, "key", m[CredentialKeyStorageAccountAccessKey])
|
assert.Equal(t, "key", m[CredentialKeyStorageAccountAccessKey])
|
||||||
|
|
||||||
// use AAD, but useAAD invalid
|
// use AAD, but useAAD invalid
|
||||||
|
@ -91,7 +91,7 @@ func TestGetStorageAccountCredentials(t *testing.T) {
|
||||||
}
|
}
|
||||||
creds = map[string]string{}
|
creds = map[string]string{}
|
||||||
_, err = GetStorageAccountCredentials(cfg, creds)
|
_, err = GetStorageAccountCredentials(cfg, creds)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
|
|
||||||
// use AAD
|
// use AAD
|
||||||
cfg = map[string]string{
|
cfg = map[string]string{
|
||||||
|
@ -101,7 +101,7 @@ func TestGetStorageAccountCredentials(t *testing.T) {
|
||||||
"KEY": "key",
|
"KEY": "key",
|
||||||
}
|
}
|
||||||
m, err = GetStorageAccountCredentials(cfg, creds)
|
m, err = GetStorageAccountCredentials(cfg, creds)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, creds, m)
|
assert.Equal(t, creds, m)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,7 +114,7 @@ func Test_getStorageAccountURI(t *testing.T) {
|
||||||
}
|
}
|
||||||
creds := map[string]string{}
|
creds := map[string]string{}
|
||||||
uri, err := getStorageAccountURI(log, bslCfg, creds)
|
uri, err := getStorageAccountURI(log, bslCfg, creds)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, "uri", uri)
|
assert.Equal(t, "uri", uri)
|
||||||
|
|
||||||
// no URI specified, and auth with access key
|
// no URI specified, and auth with access key
|
||||||
|
@ -125,7 +125,7 @@ func Test_getStorageAccountURI(t *testing.T) {
|
||||||
"KEY": "value",
|
"KEY": "value",
|
||||||
}
|
}
|
||||||
uri, err = getStorageAccountURI(log, bslCfg, creds)
|
uri, err = getStorageAccountURI(log, bslCfg, creds)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, "https://.blob.core.windows.net", uri)
|
assert.Equal(t, "https://.blob.core.windows.net", uri)
|
||||||
|
|
||||||
// no URI specified, auth with AAD, resource group isn't specified
|
// no URI specified, auth with AAD, resource group isn't specified
|
||||||
|
@ -138,7 +138,7 @@ func Test_getStorageAccountURI(t *testing.T) {
|
||||||
"AZURE_CLIENT_SECRET": "secret",
|
"AZURE_CLIENT_SECRET": "secret",
|
||||||
}
|
}
|
||||||
uri, err = getStorageAccountURI(log, bslCfg, creds)
|
uri, err = getStorageAccountURI(log, bslCfg, creds)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, "https://.blob.core.windows.net", uri)
|
assert.Equal(t, "https://.blob.core.windows.net", uri)
|
||||||
|
|
||||||
// no URI specified, auth with AAD, resource group specified
|
// no URI specified, auth with AAD, resource group specified
|
||||||
|
@ -153,7 +153,7 @@ func Test_getStorageAccountURI(t *testing.T) {
|
||||||
"AZURE_CLIENT_SECRET": "secret",
|
"AZURE_CLIENT_SECRET": "secret",
|
||||||
}
|
}
|
||||||
uri, err = getStorageAccountURI(log, bslCfg, creds)
|
uri, err = getStorageAccountURI(log, bslCfg, creds)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, "https://account.blob.core.windows.net", uri)
|
assert.Equal(t, "https://account.blob.core.windows.net", uri)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,7 +168,7 @@ func Test_exchangeStorageAccountAccessKey(t *testing.T) {
|
||||||
"AZURE_CLIENT_SECRET": "secret",
|
"AZURE_CLIENT_SECRET": "secret",
|
||||||
}
|
}
|
||||||
_, err := exchangeStorageAccountAccessKey(bslCfg, creds)
|
_, err := exchangeStorageAccountAccessKey(bslCfg, creds)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
|
|
||||||
// storage account isn't specified
|
// storage account isn't specified
|
||||||
bslCfg = map[string]string{
|
bslCfg = map[string]string{
|
||||||
|
@ -181,7 +181,7 @@ func Test_exchangeStorageAccountAccessKey(t *testing.T) {
|
||||||
"AZURE_CLIENT_SECRET": "secret",
|
"AZURE_CLIENT_SECRET": "secret",
|
||||||
}
|
}
|
||||||
_, err = exchangeStorageAccountAccessKey(bslCfg, creds)
|
_, err = exchangeStorageAccountAccessKey(bslCfg, creds)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
|
|
||||||
// storage account specified
|
// storage account specified
|
||||||
bslCfg = map[string]string{
|
bslCfg = map[string]string{
|
||||||
|
@ -195,7 +195,7 @@ func Test_exchangeStorageAccountAccessKey(t *testing.T) {
|
||||||
"AZURE_CLIENT_SECRET": "secret",
|
"AZURE_CLIENT_SECRET": "secret",
|
||||||
}
|
}
|
||||||
_, err = exchangeStorageAccountAccessKey(bslCfg, creds)
|
_, err = exchangeStorageAccountAccessKey(bslCfg, creds)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Test_newStorageAccountManagemenClient(t *testing.T) {
|
func Test_newStorageAccountManagemenClient(t *testing.T) {
|
||||||
|
@ -207,7 +207,7 @@ func Test_newStorageAccountManagemenClient(t *testing.T) {
|
||||||
"AZURE_CLIENT_SECRET": "secret",
|
"AZURE_CLIENT_SECRET": "secret",
|
||||||
}
|
}
|
||||||
_, err := newStorageAccountManagemenClient(bslCfg, creds)
|
_, err := newStorageAccountManagemenClient(bslCfg, creds)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
|
|
||||||
// subscription ID isn't specified
|
// subscription ID isn't specified
|
||||||
bslCfg = map[string]string{
|
bslCfg = map[string]string{
|
||||||
|
@ -219,5 +219,5 @@ func Test_newStorageAccountManagemenClient(t *testing.T) {
|
||||||
"AZURE_CLIENT_SECRET": "secret",
|
"AZURE_CLIENT_SECRET": "secret",
|
||||||
}
|
}
|
||||||
_, err = newStorageAccountManagemenClient(bslCfg, creds)
|
_, err = newStorageAccountManagemenClient(bslCfg, creds)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,30 +29,30 @@ import (
|
||||||
func TestLoadCredentials(t *testing.T) {
|
func TestLoadCredentials(t *testing.T) {
|
||||||
// no credential file
|
// no credential file
|
||||||
credentials, err := LoadCredentials(nil)
|
credentials, err := LoadCredentials(nil)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.NotNil(t, credentials)
|
assert.NotNil(t, credentials)
|
||||||
|
|
||||||
// specified credential file in the config
|
// specified credential file in the config
|
||||||
name := filepath.Join(os.TempDir(), "credential")
|
name := filepath.Join(os.TempDir(), "credential")
|
||||||
file, err := os.Create(name)
|
file, err := os.Create(name)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
defer os.Remove(name)
|
defer os.Remove(name)
|
||||||
_, err = file.WriteString("key: value")
|
_, err = file.WriteString("key: value")
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
config := map[string]string{
|
config := map[string]string{
|
||||||
"credentialsFile": name,
|
"credentialsFile": name,
|
||||||
}
|
}
|
||||||
credentials, err = LoadCredentials(config)
|
credentials, err = LoadCredentials(config)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, "value", credentials["key"])
|
assert.Equal(t, "value", credentials["key"])
|
||||||
|
|
||||||
// use the default path defined via env variable
|
// use the default path defined via env variable
|
||||||
config = nil
|
config = nil
|
||||||
os.Setenv("AZURE_CREDENTIALS_FILE", name)
|
os.Setenv("AZURE_CREDENTIALS_FILE", name)
|
||||||
credentials, err = LoadCredentials(config)
|
credentials, err = LoadCredentials(config)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, "value", credentials["key"])
|
assert.Equal(t, "value", credentials["key"])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ func TestGetClientOptions(t *testing.T) {
|
||||||
CredentialKeyCloudName: "invalid",
|
CredentialKeyCloudName: "invalid",
|
||||||
}
|
}
|
||||||
_, err := GetClientOptions(bslCfg, creds)
|
_, err := GetClientOptions(bslCfg, creds)
|
||||||
require.NotNil(t, err)
|
require.Error(t, err)
|
||||||
|
|
||||||
// specify caCert
|
// specify caCert
|
||||||
bslCfg = map[string]string{
|
bslCfg = map[string]string{
|
||||||
|
@ -72,7 +72,7 @@ func TestGetClientOptions(t *testing.T) {
|
||||||
}
|
}
|
||||||
creds = map[string]string{}
|
creds = map[string]string{}
|
||||||
options, err := GetClientOptions(bslCfg, creds)
|
options, err := GetClientOptions(bslCfg, creds)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, options.Cloud, cloud.AzurePublic)
|
assert.Equal(t, options.Cloud, cloud.AzurePublic)
|
||||||
assert.NotNil(t, options.Transport)
|
assert.NotNil(t, options.Transport)
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ func TestGetClientOptions(t *testing.T) {
|
||||||
}
|
}
|
||||||
creds = map[string]string{}
|
creds = map[string]string{}
|
||||||
options, err = GetClientOptions(bslCfg, creds)
|
options, err = GetClientOptions(bslCfg, creds)
|
||||||
require.Nil(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, options.Cloud, cloud.AzurePublic)
|
assert.Equal(t, options.Cloud, cloud.AzurePublic)
|
||||||
assert.Nil(t, options.Transport)
|
assert.Nil(t, options.Transport)
|
||||||
}
|
}
|
||||||
|
|
|
@ -955,7 +955,7 @@ func TestGetVolumeSnapshotClass(t *testing.T) {
|
||||||
actualSnapshotClass, actualError := GetVolumeSnapshotClass(
|
actualSnapshotClass, actualError := GetVolumeSnapshotClass(
|
||||||
tc.driverName, tc.backup, tc.pvc, logrus.New(), fakeClient)
|
tc.driverName, tc.backup, tc.pvc, logrus.New(), fakeClient)
|
||||||
if tc.expectError {
|
if tc.expectError {
|
||||||
assert.NotNil(t, actualError)
|
assert.Error(t, actualError)
|
||||||
assert.Nil(t, actualSnapshotClass)
|
assert.Nil(t, actualSnapshotClass)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -1070,7 +1070,7 @@ func TestGetVolumeSnapshotClassForStorageClass(t *testing.T) {
|
||||||
actualVSC, actualError := GetVolumeSnapshotClassForStorageClass(tc.driverName, snapshotClasses)
|
actualVSC, actualError := GetVolumeSnapshotClassForStorageClass(tc.driverName, snapshotClasses)
|
||||||
|
|
||||||
if tc.expectError {
|
if tc.expectError {
|
||||||
assert.NotNil(t, actualError)
|
assert.Error(t, actualError)
|
||||||
assert.Nil(t, actualVSC)
|
assert.Nil(t, actualVSC)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -1361,16 +1361,16 @@ func TestSetVolumeSnapshotContentDeletionPolicy(t *testing.T) {
|
||||||
fakeClient := velerotest.NewFakeControllerRuntimeClient(t, tc.objs...)
|
fakeClient := velerotest.NewFakeControllerRuntimeClient(t, tc.objs...)
|
||||||
err := SetVolumeSnapshotContentDeletionPolicy(tc.inputVSCName, fakeClient)
|
err := SetVolumeSnapshotContentDeletionPolicy(tc.inputVSCName, fakeClient)
|
||||||
if tc.expectError {
|
if tc.expectError {
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
} else {
|
} else {
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
actual := new(snapshotv1api.VolumeSnapshotContent)
|
actual := new(snapshotv1api.VolumeSnapshotContent)
|
||||||
err := fakeClient.Get(
|
err := fakeClient.Get(
|
||||||
context.TODO(),
|
context.TODO(),
|
||||||
crclient.ObjectKey{Name: tc.inputVSCName},
|
crclient.ObjectKey{Name: tc.inputVSCName},
|
||||||
actual,
|
actual,
|
||||||
)
|
)
|
||||||
assert.Nil(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(
|
assert.Equal(
|
||||||
t,
|
t,
|
||||||
snapshotv1api.VolumeSnapshotContentDelete,
|
snapshotv1api.VolumeSnapshotContentDelete,
|
||||||
|
@ -1647,7 +1647,7 @@ func TestWaitUntilVSCHandleIsReady(t *testing.T) {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
actualVSC, actualError := WaitUntilVSCHandleIsReady(tc.volSnap, fakeClient, logrus.New().WithField("fake", "test"), tc.wait, 0)
|
actualVSC, actualError := WaitUntilVSCHandleIsReady(tc.volSnap, fakeClient, logrus.New().WithField("fake", "test"), tc.wait, 0)
|
||||||
if tc.expectError && actualError == nil {
|
if tc.expectError && actualError == nil {
|
||||||
assert.NotNil(t, actualError)
|
assert.Error(t, actualError)
|
||||||
assert.Nil(t, actualVSC)
|
assert.Nil(t, actualVSC)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,21 +37,21 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestStart(t *testing.T) {
|
func TestStart(t *testing.T) {
|
||||||
require.Nil(t, velerov1.AddToScheme(scheme.Scheme))
|
require.NoError(t, velerov1.AddToScheme(scheme.Scheme))
|
||||||
|
|
||||||
ctx, cancelFunc := context.WithCancel(context.TODO())
|
ctx, cancelFunc := context.WithCancel(context.TODO())
|
||||||
client := (&fake.ClientBuilder{}).Build()
|
client := (&fake.ClientBuilder{}).Build()
|
||||||
queue := workqueue.NewRateLimitingQueue(workqueue.DefaultItemBasedRateLimiter())
|
queue := workqueue.NewRateLimitingQueue(workqueue.DefaultItemBasedRateLimiter())
|
||||||
source := NewPeriodicalEnqueueSource(logrus.WithContext(ctx), client, &velerov1.ScheduleList{}, 1*time.Second, PeriodicalEnqueueSourceOption{})
|
source := NewPeriodicalEnqueueSource(logrus.WithContext(ctx), client, &velerov1.ScheduleList{}, 1*time.Second, PeriodicalEnqueueSourceOption{})
|
||||||
|
|
||||||
require.Nil(t, source.Start(ctx, nil, queue))
|
require.NoError(t, source.Start(ctx, nil, queue))
|
||||||
|
|
||||||
// no resources
|
// no resources
|
||||||
time.Sleep(1 * time.Second)
|
time.Sleep(1 * time.Second)
|
||||||
require.Equal(t, 0, queue.Len())
|
require.Equal(t, 0, queue.Len())
|
||||||
|
|
||||||
// contain one resource
|
// contain one resource
|
||||||
require.Nil(t, client.Create(ctx, &velerov1.Schedule{
|
require.NoError(t, client.Create(ctx, &velerov1.Schedule{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "schedule",
|
Name: "schedule",
|
||||||
},
|
},
|
||||||
|
@ -69,7 +69,7 @@ func TestStart(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestPredicate(t *testing.T) {
|
func TestPredicate(t *testing.T) {
|
||||||
require.Nil(t, velerov1.AddToScheme(scheme.Scheme))
|
require.NoError(t, velerov1.AddToScheme(scheme.Scheme))
|
||||||
|
|
||||||
ctx, cancelFunc := context.WithCancel(context.TODO())
|
ctx, cancelFunc := context.WithCancel(context.TODO())
|
||||||
client := (&fake.ClientBuilder{}).Build()
|
client := (&fake.ClientBuilder{}).Build()
|
||||||
|
@ -82,14 +82,14 @@ func TestPredicate(t *testing.T) {
|
||||||
PeriodicalEnqueueSourceOption{},
|
PeriodicalEnqueueSourceOption{},
|
||||||
)
|
)
|
||||||
|
|
||||||
require.Nil(t, source.Start(ctx, nil, queue, NewGenericEventPredicate(func(object crclient.Object) bool {
|
require.NoError(t, source.Start(ctx, nil, queue, NewGenericEventPredicate(func(object crclient.Object) bool {
|
||||||
location := object.(*velerov1.BackupStorageLocation)
|
location := object.(*velerov1.BackupStorageLocation)
|
||||||
return storage.IsReadyToValidate(location.Spec.ValidationFrequency, location.Status.LastValidationTime, 1*time.Minute, logrus.WithContext(ctx).WithField("BackupStorageLocation", location.Name))
|
return storage.IsReadyToValidate(location.Spec.ValidationFrequency, location.Status.LastValidationTime, 1*time.Minute, logrus.WithContext(ctx).WithField("BackupStorageLocation", location.Name))
|
||||||
})))
|
})))
|
||||||
|
|
||||||
// Should not patch a backup storage location object status phase
|
// Should not patch a backup storage location object status phase
|
||||||
// if the location's validation frequency is specifically set to zero
|
// if the location's validation frequency is specifically set to zero
|
||||||
require.Nil(t, client.Create(ctx, &velerov1.BackupStorageLocation{
|
require.NoError(t, client.Create(ctx, &velerov1.BackupStorageLocation{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "location1",
|
Name: "location1",
|
||||||
Namespace: "default",
|
Namespace: "default",
|
||||||
|
@ -109,7 +109,7 @@ func TestPredicate(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestOrder(t *testing.T) {
|
func TestOrder(t *testing.T) {
|
||||||
require.Nil(t, velerov1.AddToScheme(scheme.Scheme))
|
require.NoError(t, velerov1.AddToScheme(scheme.Scheme))
|
||||||
|
|
||||||
ctx, cancelFunc := context.WithCancel(context.TODO())
|
ctx, cancelFunc := context.WithCancel(context.TODO())
|
||||||
client := (&fake.ClientBuilder{}).Build()
|
client := (&fake.ClientBuilder{}).Build()
|
||||||
|
@ -137,11 +137,11 @@ func TestOrder(t *testing.T) {
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
require.Nil(t, source.Start(ctx, nil, queue))
|
require.NoError(t, source.Start(ctx, nil, queue))
|
||||||
|
|
||||||
// Should not patch a backup storage location object status phase
|
// Should not patch a backup storage location object status phase
|
||||||
// if the location's validation frequency is specifically set to zero
|
// if the location's validation frequency is specifically set to zero
|
||||||
require.Nil(t, client.Create(ctx, &velerov1.BackupStorageLocation{
|
require.NoError(t, client.Create(ctx, &velerov1.BackupStorageLocation{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "location1",
|
Name: "location1",
|
||||||
Namespace: "default",
|
Namespace: "default",
|
||||||
|
@ -153,7 +153,7 @@ func TestOrder(t *testing.T) {
|
||||||
LastValidationTime: &metav1.Time{Time: time.Now()},
|
LastValidationTime: &metav1.Time{Time: time.Now()},
|
||||||
},
|
},
|
||||||
}))
|
}))
|
||||||
require.Nil(t, client.Create(ctx, &velerov1.BackupStorageLocation{
|
require.NoError(t, client.Create(ctx, &velerov1.BackupStorageLocation{
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: "location2",
|
Name: "location2",
|
||||||
Namespace: "default",
|
Namespace: "default",
|
||||||
|
@ -171,7 +171,7 @@ func TestOrder(t *testing.T) {
|
||||||
first, _ := queue.Get()
|
first, _ := queue.Get()
|
||||||
bsl := &velerov1.BackupStorageLocation{}
|
bsl := &velerov1.BackupStorageLocation{}
|
||||||
require.Equal(t, "location2", first.(reconcile.Request).Name)
|
require.Equal(t, "location2", first.(reconcile.Request).Name)
|
||||||
require.Nil(t, client.Get(ctx, first.(reconcile.Request).NamespacedName, bsl))
|
require.NoError(t, client.Get(ctx, first.(reconcile.Request).NamespacedName, bsl))
|
||||||
require.True(t, bsl.Spec.Default)
|
require.True(t, bsl.Spec.Default)
|
||||||
|
|
||||||
cancelFunc()
|
cancelFunc()
|
||||||
|
|
|
@ -1248,12 +1248,12 @@ func TestGetPVForPVC(t *testing.T) {
|
||||||
actualPV, actualError := GetPVForPVC(tc.inPVC, fakeClient)
|
actualPV, actualError := GetPVForPVC(tc.inPVC, fakeClient)
|
||||||
|
|
||||||
if tc.expectError {
|
if tc.expectError {
|
||||||
assert.NotNil(t, actualError, "Want error; Got nil error")
|
assert.Error(t, actualError, "Want error; Got nil error")
|
||||||
assert.Nilf(t, actualPV, "Want PV: nil; Got PV: %q", actualPV)
|
assert.Nilf(t, actualPV, "Want PV: nil; Got PV: %q", actualPV)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
assert.Nilf(t, actualError, "Want: nil error; Got: %v", actualError)
|
assert.NoErrorf(t, actualError, "Want: nil error; Got: %v", actualError)
|
||||||
assert.Equalf(t, actualPV.Name, tc.expectedPV.Name, "Want PV with name %q; Got PV with name %q", tc.expectedPV.Name, actualPV.Name)
|
assert.Equalf(t, actualPV.Name, tc.expectedPV.Name, "Want PV with name %q; Got PV with name %q", tc.expectedPV.Name, actualPV.Name)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -1371,11 +1371,11 @@ func TestGetPVCForPodVolume(t *testing.T) {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
actualPVC, actualError := GetPVCForPodVolume(tc.vol, samplePod, fakeClient)
|
actualPVC, actualError := GetPVCForPodVolume(tc.vol, samplePod, fakeClient)
|
||||||
if tc.expectedError {
|
if tc.expectedError {
|
||||||
assert.NotNil(t, actualError, "Want error; Got nil error")
|
assert.Error(t, actualError, "Want error; Got nil error")
|
||||||
assert.Nilf(t, actualPVC, "Want PV: nil; Got PV: %q", actualPVC)
|
assert.Nilf(t, actualPVC, "Want PV: nil; Got PV: %q", actualPVC)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
assert.Nilf(t, actualError, "Want: nil error; Got: %v", actualError)
|
assert.NoErrorf(t, actualError, "Want: nil error; Got: %v", actualError)
|
||||||
assert.Equalf(t, actualPVC.Name, tc.expectedPVC.Name, "Want PVC with name %q; Got PVC with name %q", tc.expectedPVC.Name, actualPVC)
|
assert.Equalf(t, actualPVC.Name, tc.expectedPVC.Name, "Want PVC with name %q; Got PVC with name %q", tc.expectedPVC.Name, actualPVC)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -469,7 +469,7 @@ func TestIsCRDReady(t *testing.T) {
|
||||||
err := json.Unmarshal(resBytes, obj)
|
err := json.Unmarshal(resBytes, obj)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
_, err = IsCRDReady(obj)
|
_, err = IsCRDReady(obj)
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSinglePathMatch(t *testing.T) {
|
func TestSinglePathMatch(t *testing.T) {
|
||||||
|
@ -478,7 +478,7 @@ func TestSinglePathMatch(t *testing.T) {
|
||||||
fakeFS.MkdirAll("testDir2/subpath", 0755)
|
fakeFS.MkdirAll("testDir2/subpath", 0755)
|
||||||
|
|
||||||
_, err := SinglePathMatch("./*/subpath", fakeFS, logrus.StandardLogger())
|
_, err := SinglePathMatch("./*/subpath", fakeFS, logrus.StandardLogger())
|
||||||
assert.NotNil(t, err)
|
assert.Error(t, err)
|
||||||
assert.Contains(t, err.Error(), "expected one matching path")
|
assert.Contains(t, err.Error(), "expected one matching path")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -166,7 +166,7 @@ func TestGetInnermostTrace(t *testing.T) {
|
||||||
res := getInnermostTrace(test.err)
|
res := getInnermostTrace(test.err)
|
||||||
|
|
||||||
if test.expectedRes == nil {
|
if test.expectedRes == nil {
|
||||||
assert.Nil(t, res)
|
assert.NoError(t, res)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -669,7 +669,7 @@ func TestGetPodVolumeNameForPVC(t *testing.T) {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
actualVolumeName, err := getPodVolumeNameForPVC(tc.pod, tc.pvcName)
|
actualVolumeName, err := getPodVolumeNameForPVC(tc.pod, tc.pvcName)
|
||||||
if tc.expectError && err == nil {
|
if tc.expectError && err == nil {
|
||||||
assert.NotNil(t, err, "Want error; Got nil error")
|
assert.Error(t, err, "Want error; Got nil error")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
assert.Equalf(t, tc.expectedVolumeName, actualVolumeName, "unexpected podVolumename returned. Want %s; Got %s", tc.expectedVolumeName, actualVolumeName)
|
assert.Equalf(t, tc.expectedVolumeName, actualVolumeName, "unexpected podVolumename returned. Want %s; Got %s", tc.expectedVolumeName, actualVolumeName)
|
||||||
|
@ -787,7 +787,7 @@ func TestGetPodsUsingPVC(t *testing.T) {
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
actualPods, err := GetPodsUsingPVC(tc.pvcNamespace, tc.pvcName, fakeClient)
|
actualPods, err := GetPodsUsingPVC(tc.pvcNamespace, tc.pvcName, fakeClient)
|
||||||
assert.Nilf(t, err, "Want error=nil; Got error=%v", err)
|
assert.NoErrorf(t, err, "Want error=nil; Got error=%v", err)
|
||||||
assert.Lenf(t, actualPods, tc.expectedPodCount, "unexpected number of pods in result; Want: %d; Got: %d", tc.expectedPodCount, len(actualPods))
|
assert.Lenf(t, actualPods, tc.expectedPodCount, "unexpected number of pods in result; Want: %d; Got: %d", tc.expectedPodCount, len(actualPods))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue