From c66c0447efe9c7e7afdcf75b950897c67894256b Mon Sep 17 00:00:00 2001 From: Daniel Nephin Date: Wed, 12 Jul 2017 18:26:09 -0400 Subject: [PATCH] move api test client setup to a package. Signed-off-by: Daniel Nephin --- hack/make/.integration-test-helpers | 4 +++- integration/container/create_test.go | 33 ++++++++++++++-------------- integration/container/main_test.go | 8 ------- integration/util/request/client.go | 15 +++++++++++++ 4 files changed, 35 insertions(+), 25 deletions(-) create mode 100644 integration/util/request/client.go diff --git a/hack/make/.integration-test-helpers b/hack/make/.integration-test-helpers index 9a8abd3633..31a4782bdc 100644 --- a/hack/make/.integration-test-helpers +++ b/hack/make/.integration-test-helpers @@ -10,7 +10,9 @@ source "$SCRIPTDIR/make/.go-autogen" : ${TEST_REPEAT:=1} -integration_api_dirs=("$(find ./integration -type d | grep -vE '^./integration$')") +integration_api_dirs=("$( + find ./integration -type d | + grep -vE '^(./integration$|./integration/util)')") run_test_integration() { local flags="-test.v -test.timeout=${TIMEOUT} $TESTFLAGS" diff --git a/integration/container/create_test.go b/integration/container/create_test.go index c3aed0d225..4b83af41d4 100644 --- a/integration/container/create_test.go +++ b/integration/container/create_test.go @@ -7,52 +7,54 @@ import ( "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/network" - "github.com/stretchr/testify/require" + "github.com/docker/docker/integration/util/request" + "github.com/docker/docker/pkg/testutil" ) -func TestAPICreateWithNotExistImage(t *testing.T) { +func TestCreateFailsWhenIdentifierDoesNotExist(t *testing.T) { defer setupTest(t)() - clt := createClient(t) + client := request.NewAPIClient(t) testCases := []struct { + doc string image string expectedError string }{ { + doc: "image and tag", image: "test456:v1", expectedError: "No such image: test456:v1", }, { + doc: "image no tag", image: "test456", expectedError: "No such image: test456", }, { + doc: "digest", image: "sha256:0cb40641836c461bc97c793971d84d758371ed682042457523e4ae701efeaaaa", expectedError: "No such image: sha256:0cb40641836c461bc97c793971d84d758371ed682042457523e4ae701efeaaaa", }, } - for index, tc := range testCases { + for _, tc := range testCases { tc := tc - t.Run(strconv.Itoa(index), func(t *testing.T) { + t.Run(tc.doc, func(t *testing.T) { t.Parallel() - _, err := clt.ContainerCreate(context.Background(), - &container.Config{ - Image: tc.image, - }, + _, err := client.ContainerCreate(context.Background(), + &container.Config{Image: tc.image}, &container.HostConfig{}, &network.NetworkingConfig{}, "foo", ) - require.Error(t, err) - require.Contains(t, err.Error(), tc.expectedError) + testutil.ErrorContains(t, err, tc.expectedError) }) } } -func TestAPICreateEmptyEnv(t *testing.T) { +func TestCreateWithInvalidEnv(t *testing.T) { defer setupTest(t)() - clt := createClient(t) + client := request.NewAPIClient(t) testCases := []struct { env string @@ -76,7 +78,7 @@ func TestAPICreateEmptyEnv(t *testing.T) { tc := tc t.Run(strconv.Itoa(index), func(t *testing.T) { t.Parallel() - _, err := clt.ContainerCreate(context.Background(), + _, err := client.ContainerCreate(context.Background(), &container.Config{ Image: "busybox", Env: []string{tc.env}, @@ -85,8 +87,7 @@ func TestAPICreateEmptyEnv(t *testing.T) { &network.NetworkingConfig{}, "foo", ) - require.Error(t, err) - require.Contains(t, err.Error(), tc.expectedError) + testutil.ErrorContains(t, err, tc.expectedError) }) } } diff --git a/integration/container/main_test.go b/integration/container/main_test.go index 9977acb001..a54b8d9094 100644 --- a/integration/container/main_test.go +++ b/integration/container/main_test.go @@ -5,9 +5,7 @@ import ( "os" "testing" - "github.com/docker/docker/client" "github.com/docker/docker/integration-cli/environment" - "github.com/stretchr/testify/require" ) var ( @@ -33,12 +31,6 @@ func TestMain(m *testing.M) { os.Exit(res) } -func createClient(t *testing.T) client.APIClient { - clt, err := client.NewEnvClient() - require.NoError(t, err) - return clt -} - func setupTest(t *testing.T) func() { environment.ProtectImages(t, testEnv) return func() { testEnv.Clean(t, testEnv.DockerBinary()) } diff --git a/integration/util/request/client.go b/integration/util/request/client.go new file mode 100644 index 0000000000..771563673e --- /dev/null +++ b/integration/util/request/client.go @@ -0,0 +1,15 @@ +package request + +import ( + "testing" + + "github.com/docker/docker/client" + "github.com/stretchr/testify/require" +) + +// NewAPIClient returns a docker API client configured from environment variables +func NewAPIClient(t *testing.T) client.APIClient { + clt, err := client.NewEnvClient() + require.NoError(t, err) + return clt +}