client to return imageNotFound error if API returns 404 status code
@@ -2,6 +2,7 @@ package client
import (
"encoding/json"
+ "net/http"
"net/url"
"github.com/docker/docker/api/types"
@@ -21,6 +22,9 @@ func (cli *Client) ImageRemove(ctx context.Context, imageID string, options type
resp, err := cli.delete(ctx, "/images/"+imageID, query, nil)
if err != nil {
+ if resp.statusCode == http.StatusNotFound {
+ return nil, imageNotFoundError{imageID}
+ }
return nil, err
}
@@ -24,6 +24,17 @@ func TestImageRemoveError(t *testing.T) {
+func TestImageRemoveImageNotFound(t *testing.T) {
+ client := &Client{
+ client: newMockClient(errorMock(http.StatusNotFound, "Server error")),
+
+ _, err := client.ImageRemove(context.Background(), "unknown", types.ImageRemoveOptions{})
+ if err == nil || !IsErrNotFound(err) {
+ t.Fatalf("expected an imageNotFoundError error, got %v", err)
+}
func TestImageRemove(t *testing.T) {
expectedURL := "/images/image_id"
removeCases := []struct {