From 51f5b832aefb9f110a8493c26e4fafae6370f791 Mon Sep 17 00:00:00 2001 From: "huadong.xiao" Date: Tue, 2 Apr 2024 12:25:27 +0800 Subject: [PATCH] test: replace gomonkey with xgo in submodule chaosmeta-inject-operator --- .../controllers/experiment_controller_test.go | 7 ++++--- chaosmeta-inject-operator/go.mod | 1 + chaosmeta-inject-operator/go.sum | 2 ++ .../cloudnativeexecutor/clusterpendingpod_test.go | 15 ++++++++------- .../pkg/phasehandler/inject/handler_test.go | 15 ++++++++------- .../pkg/phasehandler/recover/handler_test.go | 11 ++++++----- .../pkg/scopehandler/pod/handler_test.go | 3 ++- 7 files changed, 31 insertions(+), 23 deletions(-) diff --git a/chaosmeta-inject-operator/controllers/experiment_controller_test.go b/chaosmeta-inject-operator/controllers/experiment_controller_test.go index 531ea4f..6aded18 100644 --- a/chaosmeta-inject-operator/controllers/experiment_controller_test.go +++ b/chaosmeta-inject-operator/controllers/experiment_controller_test.go @@ -19,15 +19,16 @@ package controllers import ( "context" "fmt" - "github.com/agiledragon/gomonkey" + "testing" + "github.com/golang/mock/gomock" "github.com/stretchr/testify/assert" "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/api/v1alpha1" mockscopehandler "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/mock/scopehandler" "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/pkg/model" "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/pkg/scopehandler" + "github.com/xhd2015/xgo/runtime/mock" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "testing" ) func Test_solveRange(t *testing.T) { @@ -164,7 +165,7 @@ func Test_initProcess(t *testing.T) { scopeHandlerMock := mockscopehandler.NewMockScopeHandler(ctrl) scopeHandlerMock.EXPECT().ConvertSelector(ctx, &exp.Spec).Return(reObject, nil) - gomonkey.ApplyFunc(scopehandler.GetScopeHandler, func(v1alpha1.ScopeType) scopehandler.ScopeHandler { + mock.Patch(scopehandler.GetScopeHandler, func(v1alpha1.ScopeType) scopehandler.ScopeHandler { return scopeHandlerMock }) diff --git a/chaosmeta-inject-operator/go.mod b/chaosmeta-inject-operator/go.mod index f43d159..e9c951f 100644 --- a/chaosmeta-inject-operator/go.mod +++ b/chaosmeta-inject-operator/go.mod @@ -9,6 +9,7 @@ require ( github.com/onsi/gomega v1.24.1 github.com/stretchr/testify v1.8.0 github.com/traas-stack/chaosmeta/chaosmeta-common v0.0.0-20240102105916-8f3b8d9accc5 + github.com/xhd2015/xgo/runtime v1.0.12 k8s.io/api v0.26.0 k8s.io/apimachinery v0.26.3 k8s.io/client-go v0.26.0 diff --git a/chaosmeta-inject-operator/go.sum b/chaosmeta-inject-operator/go.sum index afae5a0..81e80c0 100644 --- a/chaosmeta-inject-operator/go.sum +++ b/chaosmeta-inject-operator/go.sum @@ -275,6 +275,8 @@ github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PK github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/traas-stack/chaosmeta/chaosmeta-common v0.0.0-20240102105916-8f3b8d9accc5 h1:1RpFVSqiERGKUq2Yc6nioKEa0VyCXu0+t9vXpmK1WQ4= github.com/traas-stack/chaosmeta/chaosmeta-common v0.0.0-20240102105916-8f3b8d9accc5/go.mod h1:291sLBmT/cXwucSh4T3kRmLX7JRlSNq5HY66PQtt4ow= +github.com/xhd2015/xgo/runtime v1.0.12 h1:oPFv8qYEI+RvcT6frK7ffYwyeZhL9AeDhxvBYBSs494= +github.com/xhd2015/xgo/runtime v1.0.12/go.mod h1:Z9uVy/NhTPeR3pvQoOdRvlYnSosJvrM7BySVGPsht6o= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= diff --git a/chaosmeta-inject-operator/pkg/executor/cloudnativeexecutor/clusterpendingpod_test.go b/chaosmeta-inject-operator/pkg/executor/cloudnativeexecutor/clusterpendingpod_test.go index 6e5e52d..40b16c1 100644 --- a/chaosmeta-inject-operator/pkg/executor/cloudnativeexecutor/clusterpendingpod_test.go +++ b/chaosmeta-inject-operator/pkg/executor/cloudnativeexecutor/clusterpendingpod_test.go @@ -18,12 +18,13 @@ package cloudnativeexecutor import ( "context" - "github.com/agiledragon/gomonkey" + "testing" + "time" + "github.com/stretchr/testify/assert" "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/api/v1alpha1" "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/pkg/common" - "testing" - "time" + "github.com/xhd2015/xgo/runtime/mock" ) func TestClusterPendingPodExecutor_Inject(t *testing.T) { @@ -36,10 +37,10 @@ func TestClusterPendingPodExecutor_Inject(t *testing.T) { {Key: "name", Value: podname}, } - gomonkey.ApplyFunc(createNs, func(ctx context.Context, name string) error { + mock.Patch(createNs, func(ctx context.Context, name string) error { return nil }) - gomonkey.ApplyFunc(createPendingPod, func(ctx context.Context, namespace, name string) error { + mock.Patch(createPendingPod, func(ctx context.Context, namespace, name string) error { return nil }) @@ -49,12 +50,12 @@ func TestClusterPendingPodExecutor_Inject(t *testing.T) { assert.Equal(t, err, nil) assert.Equal(t, common.GetClusterCtrl().IsRunning(), false) - gomonkey.ApplyFunc(createPendingPod, func(ctx context.Context, namespace, name string) error { + mock.Patch(createPendingPod, func(ctx context.Context, namespace, name string) error { time.Sleep(10 * time.Second) return nil }) - gomonkey.ApplyFunc(deleteNs, func(ctx context.Context, name string) error { + mock.Patch(deleteNs, func(ctx context.Context, name string) error { return nil }) diff --git a/chaosmeta-inject-operator/pkg/phasehandler/inject/handler_test.go b/chaosmeta-inject-operator/pkg/phasehandler/inject/handler_test.go index 656d116..0adaadc 100644 --- a/chaosmeta-inject-operator/pkg/phasehandler/inject/handler_test.go +++ b/chaosmeta-inject-operator/pkg/phasehandler/inject/handler_test.go @@ -19,7 +19,9 @@ package injecthandler import ( "context" "fmt" - "github.com/agiledragon/gomonkey" + "testing" + "time" + "github.com/golang/mock/gomock" "github.com/stretchr/testify/assert" "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/api/v1alpha1" @@ -27,8 +29,7 @@ import ( "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/pkg/common" "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/pkg/model" "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/pkg/scopehandler" - "testing" - "time" + "github.com/xhd2015/xgo/runtime/mock" ) func TestInjectPhaseHandler_SolveCreated_OneToRunning(t *testing.T) { @@ -105,7 +106,7 @@ func TestInjectPhaseHandler_SolveCreated_OneToRunning(t *testing.T) { scopeHandlerMock.EXPECT().GetInjectObject(ctx, exp.Spec.Experiment, reContainer.GetObjectName()).Return(re, nil) scopeHandlerMock.EXPECT().ExecuteInject(ctx, re, exp.Status.Detail.Inject[0].UID, exp.Spec.Experiment).Return("", nil) - gomonkey.ApplyFunc(scopehandler.GetScopeHandler, func(v1alpha1.ScopeType) scopehandler.ScopeHandler { + mock.Patch(scopehandler.GetScopeHandler, func(v1alpha1.ScopeType) scopehandler.ScopeHandler { return scopeHandlerMock }) @@ -214,7 +215,7 @@ func TestInjectPhaseHandler_SolveCreated_OneInjectFailedInTwo(t *testing.T) { scopeHandlerMock.EXPECT().ExecuteInject(ctx, re1, exp.Status.Detail.Inject[0].UID, exp.Spec.Experiment).Return("", fmt.Errorf("expected fail")) scopeHandlerMock.EXPECT().ExecuteInject(ctx, re2, exp.Status.Detail.Inject[1].UID, exp.Spec.Experiment).Return("", nil) - gomonkey.ApplyFunc(scopehandler.GetScopeHandler, func(v1alpha1.ScopeType) scopehandler.ScopeHandler { + mock.Patch(scopehandler.GetScopeHandler, func(v1alpha1.ScopeType) scopehandler.ScopeHandler { return scopeHandlerMock }) @@ -355,7 +356,7 @@ func TestInjectPhaseHandler_SolveRunning_TwoQueryFailedInThree(t *testing.T) { Message: "task run failed", }, nil) - gomonkey.ApplyFunc(scopehandler.GetScopeHandler, func(v1alpha1.ScopeType) scopehandler.ScopeHandler { + mock.Patch(scopehandler.GetScopeHandler, func(v1alpha1.ScopeType) scopehandler.ScopeHandler { return scopeHandlerMock }) @@ -469,7 +470,7 @@ func TestInjectPhaseHandler_SolveRunning_TwoFailed(t *testing.T) { scopeHandlerMock.EXPECT().QueryExperiment(ctx, re1, exp.Status.Detail.Inject[0].UID, "", exp.Spec.Experiment, v1alpha1.InjectPhaseType).Return(nil, fmt.Errorf("expected fail")) scopeHandlerMock.EXPECT().QueryExperiment(ctx, re2, exp.Status.Detail.Inject[1].UID, "", exp.Spec.Experiment, v1alpha1.InjectPhaseType).Return(nil, fmt.Errorf("expected fail")) - gomonkey.ApplyFunc(scopehandler.GetScopeHandler, func(v1alpha1.ScopeType) scopehandler.ScopeHandler { + mock.Patch(scopehandler.GetScopeHandler, func(v1alpha1.ScopeType) scopehandler.ScopeHandler { return scopeHandlerMock }) diff --git a/chaosmeta-inject-operator/pkg/phasehandler/recover/handler_test.go b/chaosmeta-inject-operator/pkg/phasehandler/recover/handler_test.go index 70eb436..87c4010 100644 --- a/chaosmeta-inject-operator/pkg/phasehandler/recover/handler_test.go +++ b/chaosmeta-inject-operator/pkg/phasehandler/recover/handler_test.go @@ -19,7 +19,9 @@ package recoverhandler import ( "context" "fmt" - "github.com/agiledragon/gomonkey" + "testing" + "time" + "github.com/golang/mock/gomock" "github.com/stretchr/testify/assert" "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/api/v1alpha1" @@ -27,8 +29,7 @@ import ( "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/pkg/common" "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/pkg/model" "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/pkg/scopehandler" - "testing" - "time" + "github.com/xhd2015/xgo/runtime/mock" ) func TestRecoverPhaseHandler_SolveCreated_OneToRunning(t *testing.T) { @@ -113,7 +114,7 @@ func TestRecoverPhaseHandler_SolveCreated_OneToRunning(t *testing.T) { scopeHandlerMock := mockscopehandler.NewMockScopeHandler(ctrl) scopeHandlerMock.EXPECT().GetInjectObject(ctx, exp.Spec.Experiment, reContainer.GetObjectName()).Return(re, nil) scopeHandlerMock.EXPECT().ExecuteRecover(ctx, re, exp.Status.Detail.Inject[0].UID, "", exp.Spec.Experiment).Return(nil) - gomonkey.ApplyFunc(scopehandler.GetScopeHandler, func(v1alpha1.ScopeType) scopehandler.ScopeHandler { + mock.Patch(scopehandler.GetScopeHandler, func(v1alpha1.ScopeType) scopehandler.ScopeHandler { return scopeHandlerMock }) @@ -237,7 +238,7 @@ func TestRecoverPhaseHandler_SolveRunning(t *testing.T) { scopeHandlerMock.EXPECT().QueryExperiment(ctx, re1, exp.Status.Detail.Inject[0].UID, "", exp.Spec.Experiment, v1alpha1.RecoverPhaseType).Return(nil, fmt.Errorf("expected fail")) scopeHandlerMock.EXPECT().QueryExperiment(ctx, re2, exp.Status.Detail.Inject[1].UID, "", exp.Spec.Experiment, v1alpha1.RecoverPhaseType).Return(nil, fmt.Errorf("expected fail")) - gomonkey.ApplyFunc(scopehandler.GetScopeHandler, func(v1alpha1.ScopeType) scopehandler.ScopeHandler { + mock.Patch(scopehandler.GetScopeHandler, func(v1alpha1.ScopeType) scopehandler.ScopeHandler { return scopeHandlerMock }) diff --git a/chaosmeta-inject-operator/pkg/scopehandler/pod/handler_test.go b/chaosmeta-inject-operator/pkg/scopehandler/pod/handler_test.go index fa1bb87..303d9b9 100644 --- a/chaosmeta-inject-operator/pkg/scopehandler/pod/handler_test.go +++ b/chaosmeta-inject-operator/pkg/scopehandler/pod/handler_test.go @@ -18,6 +18,8 @@ package pod import ( "context" + "testing" + "github.com/agiledragon/gomonkey" "github.com/golang/mock/gomock" "github.com/stretchr/testify/assert" @@ -25,7 +27,6 @@ import ( mockselector "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/mock/selector" "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/pkg/model" "github.com/traas-stack/chaosmeta/chaosmeta-inject-operator/pkg/selector" - "testing" ) func TestPodScopeHandler_ConvertSelector(t *testing.T) {