1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package container // import "github.com/docker/docker/integration/container"
- import (
- "context"
- "testing"
- "github.com/docker/docker/api/types"
- "github.com/docker/docker/api/types/container"
- "github.com/docker/docker/api/types/network"
- "gotest.tools/v3/assert"
- )
- func TestAttachWithTTY(t *testing.T) {
- testAttach(t, true, types.MediaTypeRawStream)
- }
- func TestAttachWithoutTTy(t *testing.T) {
- testAttach(t, false, types.MediaTypeMultiplexedStream)
- }
- func testAttach(t *testing.T, tty bool, expected string) {
- defer setupTest(t)()
- client := testEnv.APIClient()
- resp, err := client.ContainerCreate(context.Background(),
- &container.Config{
- Image: "busybox",
- Cmd: []string{"echo", "hello"},
- Tty: tty,
- },
- &container.HostConfig{},
- &network.NetworkingConfig{},
- nil,
- "",
- )
- assert.NilError(t, err)
- container := resp.ID
- defer client.ContainerRemove(context.Background(), container, types.ContainerRemoveOptions{
- Force: true,
- })
- attach, err := client.ContainerAttach(context.Background(), container, types.ContainerAttachOptions{
- Stdout: true,
- Stderr: true,
- })
- assert.NilError(t, err)
- mediaType, ok := attach.MediaType()
- assert.Check(t, ok)
- assert.Check(t, mediaType == expected)
- }
|