| package container |
| |
| import ( |
| "context" |
| "strconv" |
| "testing" |
| |
| "github.com/docker/docker/api/types/container" |
| "github.com/docker/docker/api/types/network" |
| "github.com/docker/docker/integration/util/request" |
| "github.com/docker/docker/internal/testutil" |
| ) |
| |
| func TestCreateFailsWhenIdentifierDoesNotExist(t *testing.T) { |
| defer setupTest(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 _, tc := range testCases { |
| tc := tc |
| t.Run(tc.doc, func(t *testing.T) { |
| t.Parallel() |
| _, err := client.ContainerCreate(context.Background(), |
| &container.Config{Image: tc.image}, |
| &container.HostConfig{}, |
| &network.NetworkingConfig{}, |
| "foo", |
| ) |
| testutil.ErrorContains(t, err, tc.expectedError) |
| }) |
| } |
| } |
| |
| func TestCreateWithInvalidEnv(t *testing.T) { |
| defer setupTest(t)() |
| client := request.NewAPIClient(t) |
| |
| testCases := []struct { |
| env string |
| expectedError string |
| }{ |
| { |
| env: "", |
| expectedError: "invalid environment variable:", |
| }, |
| { |
| env: "=", |
| expectedError: "invalid environment variable: =", |
| }, |
| { |
| env: "=foo", |
| expectedError: "invalid environment variable: =foo", |
| }, |
| } |
| |
| for index, tc := range testCases { |
| tc := tc |
| t.Run(strconv.Itoa(index), func(t *testing.T) { |
| t.Parallel() |
| _, err := client.ContainerCreate(context.Background(), |
| &container.Config{ |
| Image: "busybox", |
| Env: []string{tc.env}, |
| }, |
| &container.HostConfig{}, |
| &network.NetworkingConfig{}, |
| "foo", |
| ) |
| testutil.ErrorContains(t, err, tc.expectedError) |
| }) |
| } |
| } |