diff --git a/pkg/action/action.go b/pkg/action/action.go index 5693f4838..8cfb0d612 100644 --- a/pkg/action/action.go +++ b/pkg/action/action.go @@ -355,7 +355,7 @@ func GetVersionSet(client discovery.ServerResourcesInterface) (chartutil.Version versions = append(versions, k) } - return chartutil.VersionSet(versions), nil + return versions, nil } // recordRelease with an update operation in case reuse has been set. @@ -407,12 +407,12 @@ func (cfg *Configuration) Init(getter genericclioptions.RESTClientGetter, namesp namespace, ) if err != nil { - panic(fmt.Sprintf("Unable to instantiate SQL driver: %v", err)) + return fmt.Errorf("unable to instantiate SQL driver: %w", err) } store = storage.Init(d) default: // Not sure what to do here. - panic("Unknown driver in HELM_DRIVER: " + helmDriver) + return fmt.Errorf("unknown driver in HELM_DRIVER %q", helmDriver) } cfg.RESTClientGetter = getter diff --git a/pkg/kube/client.go b/pkg/kube/client.go index 9df833a43..15cc2a413 100644 --- a/pkg/kube/client.go +++ b/pkg/kube/client.go @@ -506,7 +506,7 @@ func rdelete(c *Client, resources ResourceList, propagation metav1.DeletionPropa } errs = append(errs, err) } - if errs != nil { + if len(errs) != 0 { return nil, errs } return res, nil diff --git a/pkg/kube/client_test.go b/pkg/kube/client_test.go index 55aa5d8ed..2192444d1 100644 --- a/pkg/kube/client_test.go +++ b/pkg/kube/client_test.go @@ -21,6 +21,7 @@ import ( "io" "net/http" "strings" + "sync" "testing" v1 "k8s.io/api/core/v1" @@ -296,7 +297,6 @@ func TestPerform(t *testing.T) { name string reader io.Reader count int - err bool errMessage string }{ { @@ -306,31 +306,33 @@ func TestPerform(t *testing.T) { }, { name: "Empty manifests", reader: strings.NewReader(""), - err: true, errMessage: "no objects visited", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - results := []*resource.Info{} + var ( + results = make([]*resource.Info, 0, tt.count) + resultsMu sync.Mutex + ) fn := func(info *resource.Info) error { + resultsMu.Lock() + defer resultsMu.Unlock() + results = append(results, info) return nil } c := newTestClient(t) infos, err := c.Build(tt.reader, false) - if err != nil && err.Error() != tt.errMessage { - t.Errorf("Error while building manifests: %v", err) + if err != nil { + t.Errorf("unexpected error while building manifests: %v", err) } err = perform(infos, fn) - if (err != nil) != tt.err { - t.Errorf("expected error: %v, got %v", tt.err, err) - } - if err != nil && err.Error() != tt.errMessage { + if tt.errMessage != "" && (err == nil || err.Error() != tt.errMessage) { t.Errorf("expected error message: %v, got %v", tt.errMessage, err) }