12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package container // import "github.com/docker/docker/integration/container"
- import (
- "testing"
- "github.com/docker/docker/api/types"
- "github.com/docker/docker/api/types/container"
- "github.com/docker/docker/api/types/network"
- "github.com/docker/docker/testutil"
- "gotest.tools/v3/assert"
- is "gotest.tools/v3/assert/cmp"
- )
- func TestAttach(t *testing.T) {
- ctx := setupTest(t)
- apiClient := testEnv.APIClient()
- tests := []struct {
- doc string
- tty bool
- expectedMediaType string
- }{
- {
- doc: "without TTY",
- expectedMediaType: types.MediaTypeMultiplexedStream,
- },
- {
- doc: "with TTY",
- tty: true,
- expectedMediaType: types.MediaTypeRawStream,
- },
- }
- for _, tc := range tests {
- tc := tc
- t.Run(tc.doc, func(t *testing.T) {
- t.Parallel()
- ctx := testutil.StartSpan(ctx, t)
- resp, err := apiClient.ContainerCreate(ctx,
- &container.Config{
- Image: "busybox",
- Cmd: []string{"echo", "hello"},
- Tty: tc.tty,
- },
- &container.HostConfig{},
- &network.NetworkingConfig{},
- nil,
- "",
- )
- assert.NilError(t, err)
- attach, err := apiClient.ContainerAttach(ctx, resp.ID, container.AttachOptions{
- Stdout: true,
- Stderr: true,
- })
- assert.NilError(t, err)
- mediaType, ok := attach.MediaType()
- assert.Check(t, ok)
- assert.Check(t, is.Equal(mediaType, tc.expectedMediaType))
- })
- }
- }
|