Skip to content

Commit f33ef47

Browse files
authored
Merge pull request #3903 from thaJeztah/build_test_dummy
cil/command: use dummy client for build-tests
2 parents 74874cd + 121c613 commit f33ef47

2 files changed

Lines changed: 40 additions & 4 deletions

File tree

cli/command/cli_options.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"strconv"
77

88
"github.com/docker/cli/cli/streams"
9+
"github.com/docker/docker/client"
910
"github.com/moby/term"
1011
)
1112

@@ -86,3 +87,11 @@ func WithDefaultContextStoreConfig() DockerCliOption {
8687
return nil
8788
}
8889
}
90+
91+
// WithAPIClient configures the cli to use the given API client.
92+
func WithAPIClient(c client.APIClient) DockerCliOption {
93+
return func(cli *DockerCli) error {
94+
cli.client = c
95+
return nil
96+
}
97+
}

cmd/docker/builder_test.go

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"bytes"
5+
"context"
56
"os"
67
"path/filepath"
78
"testing"
@@ -10,6 +11,8 @@ import (
1011
"github.com/docker/cli/cli/context/store"
1112
"github.com/docker/cli/cli/flags"
1213
"github.com/docker/cli/internal/test/output"
14+
"github.com/docker/docker/api/types"
15+
"github.com/docker/docker/client"
1316
"gotest.tools/v3/assert"
1417
"gotest.tools/v3/fs"
1518
)
@@ -63,7 +66,11 @@ echo '{"SchemaVersion":"0.1.0","Vendor":"Docker Inc.","Version":"v0.6.3","ShortD
6366
}
6467

6568
var b bytes.Buffer
66-
dockerCli, err := command.NewDockerCli(command.WithInputStream(discard), command.WithCombinedStreams(&b))
69+
dockerCli, err := command.NewDockerCli(
70+
command.WithAPIClient(&fakeClient{}),
71+
command.WithInputStream(discard),
72+
command.WithCombinedStreams(&b),
73+
)
6774
assert.NilError(t, err)
6875
assert.NilError(t, dockerCli.Initialize(flags.NewClientOptions()))
6976

@@ -107,6 +114,14 @@ echo '{"SchemaVersion":"0.1.0","Vendor":"Docker Inc.","Version":"v0.6.3","ShortD
107114
}
108115
}
109116

117+
type fakeClient struct {
118+
client.Client
119+
}
120+
121+
func (c *fakeClient) Ping(_ context.Context) (types.Ping, error) {
122+
return types.Ping{OSType: "linux"}, nil
123+
}
124+
110125
func TestBuildkitDisabled(t *testing.T) {
111126
t.Setenv("DOCKER_BUILDKIT", "0")
112127

@@ -117,7 +132,11 @@ func TestBuildkitDisabled(t *testing.T) {
117132

118133
b := bytes.NewBuffer(nil)
119134

120-
dockerCli, err := command.NewDockerCli(command.WithInputStream(discard), command.WithCombinedStreams(b))
135+
dockerCli, err := command.NewDockerCli(
136+
command.WithAPIClient(&fakeClient{}),
137+
command.WithInputStream(discard),
138+
command.WithCombinedStreams(b),
139+
)
121140
assert.NilError(t, err)
122141
assert.NilError(t, dockerCli.Initialize(flags.NewClientOptions()))
123142
dockerCli.ConfigFile().CLIPluginsExtraDirs = []string{dir.Path()}
@@ -147,7 +166,11 @@ func TestBuilderBroken(t *testing.T) {
147166

148167
b := bytes.NewBuffer(nil)
149168

150-
dockerCli, err := command.NewDockerCli(command.WithInputStream(discard), command.WithCombinedStreams(b))
169+
dockerCli, err := command.NewDockerCli(
170+
command.WithAPIClient(&fakeClient{}),
171+
command.WithInputStream(discard),
172+
command.WithCombinedStreams(b),
173+
)
151174
assert.NilError(t, err)
152175
assert.NilError(t, dockerCli.Initialize(flags.NewClientOptions()))
153176
dockerCli.ConfigFile().CLIPluginsExtraDirs = []string{dir.Path()}
@@ -180,7 +203,11 @@ func TestBuilderBrokenEnforced(t *testing.T) {
180203

181204
b := bytes.NewBuffer(nil)
182205

183-
dockerCli, err := command.NewDockerCli(command.WithInputStream(discard), command.WithCombinedStreams(b))
206+
dockerCli, err := command.NewDockerCli(
207+
command.WithAPIClient(&fakeClient{}),
208+
command.WithInputStream(discard),
209+
command.WithCombinedStreams(b),
210+
)
184211
assert.NilError(t, err)
185212
assert.NilError(t, dockerCli.Initialize(flags.NewClientOptions()))
186213
dockerCli.ConfigFile().CLIPluginsExtraDirs = []string{dir.Path()}

0 commit comments

Comments
 (0)