cil/command: use dummy client for build-tests

These tests were using the default client, which would try to make a connection
with the daemon (which isn't running). Some of these test subsequently had
tests that depended on the result of that connection (i.e., "ping" result).

This patch updates the test to use a dummy client, so that the ping result is
predictable.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2022-12-05 18:56:09 +01:00
parent 21e45ff852
commit 121c613877
No known key found for this signature in database
GPG Key ID: 76698F39D527CE8C
1 changed files with 31 additions and 4 deletions

View File

@ -2,6 +2,7 @@ package main
import ( import (
"bytes" "bytes"
"context"
"os" "os"
"path/filepath" "path/filepath"
"testing" "testing"
@ -10,6 +11,8 @@ import (
"github.com/docker/cli/cli/context/store" "github.com/docker/cli/cli/context/store"
"github.com/docker/cli/cli/flags" "github.com/docker/cli/cli/flags"
"github.com/docker/cli/internal/test/output" "github.com/docker/cli/internal/test/output"
"github.com/docker/docker/api/types"
"github.com/docker/docker/client"
"gotest.tools/v3/assert" "gotest.tools/v3/assert"
"gotest.tools/v3/fs" "gotest.tools/v3/fs"
) )
@ -63,7 +66,11 @@ echo '{"SchemaVersion":"0.1.0","Vendor":"Docker Inc.","Version":"v0.6.3","ShortD
} }
var b bytes.Buffer var b bytes.Buffer
dockerCli, err := command.NewDockerCli(command.WithInputStream(discard), command.WithCombinedStreams(&b)) dockerCli, err := command.NewDockerCli(
command.WithAPIClient(&fakeClient{}),
command.WithInputStream(discard),
command.WithCombinedStreams(&b),
)
assert.NilError(t, err) assert.NilError(t, err)
assert.NilError(t, dockerCli.Initialize(flags.NewClientOptions())) assert.NilError(t, dockerCli.Initialize(flags.NewClientOptions()))
@ -107,6 +114,14 @@ echo '{"SchemaVersion":"0.1.0","Vendor":"Docker Inc.","Version":"v0.6.3","ShortD
} }
} }
type fakeClient struct {
client.Client
}
func (c *fakeClient) Ping(_ context.Context) (types.Ping, error) {
return types.Ping{OSType: "linux"}, nil
}
func TestBuildkitDisabled(t *testing.T) { func TestBuildkitDisabled(t *testing.T) {
t.Setenv("DOCKER_BUILDKIT", "0") t.Setenv("DOCKER_BUILDKIT", "0")
@ -117,7 +132,11 @@ func TestBuildkitDisabled(t *testing.T) {
b := bytes.NewBuffer(nil) b := bytes.NewBuffer(nil)
dockerCli, err := command.NewDockerCli(command.WithInputStream(discard), command.WithCombinedStreams(b)) dockerCli, err := command.NewDockerCli(
command.WithAPIClient(&fakeClient{}),
command.WithInputStream(discard),
command.WithCombinedStreams(b),
)
assert.NilError(t, err) assert.NilError(t, err)
assert.NilError(t, dockerCli.Initialize(flags.NewClientOptions())) assert.NilError(t, dockerCli.Initialize(flags.NewClientOptions()))
dockerCli.ConfigFile().CLIPluginsExtraDirs = []string{dir.Path()} dockerCli.ConfigFile().CLIPluginsExtraDirs = []string{dir.Path()}
@ -147,7 +166,11 @@ func TestBuilderBroken(t *testing.T) {
b := bytes.NewBuffer(nil) b := bytes.NewBuffer(nil)
dockerCli, err := command.NewDockerCli(command.WithInputStream(discard), command.WithCombinedStreams(b)) dockerCli, err := command.NewDockerCli(
command.WithAPIClient(&fakeClient{}),
command.WithInputStream(discard),
command.WithCombinedStreams(b),
)
assert.NilError(t, err) assert.NilError(t, err)
assert.NilError(t, dockerCli.Initialize(flags.NewClientOptions())) assert.NilError(t, dockerCli.Initialize(flags.NewClientOptions()))
dockerCli.ConfigFile().CLIPluginsExtraDirs = []string{dir.Path()} dockerCli.ConfigFile().CLIPluginsExtraDirs = []string{dir.Path()}
@ -180,7 +203,11 @@ func TestBuilderBrokenEnforced(t *testing.T) {
b := bytes.NewBuffer(nil) b := bytes.NewBuffer(nil)
dockerCli, err := command.NewDockerCli(command.WithInputStream(discard), command.WithCombinedStreams(b)) dockerCli, err := command.NewDockerCli(
command.WithAPIClient(&fakeClient{}),
command.WithInputStream(discard),
command.WithCombinedStreams(b),
)
assert.NilError(t, err) assert.NilError(t, err)
assert.NilError(t, dockerCli.Initialize(flags.NewClientOptions())) assert.NilError(t, dockerCli.Initialize(flags.NewClientOptions()))
dockerCli.ConfigFile().CLIPluginsExtraDirs = []string{dir.Path()} dockerCli.ConfigFile().CLIPluginsExtraDirs = []string{dir.Path()}