docs/test/integration/api/attach.bats

46 lines
1.3 KiB
Bash

#!/usr/bin/env bats
load ../helpers
function teardown() {
swarm_manage_cleanup
stop_docker
}
@test "docker attach" {
start_docker_with_busybox 2
swarm_manage
# container run in background
docker_swarm run -d -i --name test_container busybox sh -c "head -n 1; echo output"
# inject input into the container
attach_output=`echo input | docker_swarm attach test_container`
# unfortunately, we cannot test `attach_output` because attach is not
# properly returning the output (see docker/docker#12974)
run docker_swarm logs test_container
[ "$status" -eq 0 ]
[[ "${output}" == *"input"* ]]
[[ "${output}" == *"output"* ]]
}
@test "docker attach through websocket" {
skip
CLIENT_API_VERSION="v1.17"
start_docker_with_busybox 2
swarm_manage
#create a container
docker_swarm run -d --name test_container busybox sleep 1000
# test attach-ws api
# jimmyxian/centos7-wssh is an image with websocket CLI(WSSH) wirtten in Python
# if connected successful, it returns two lines, "Session Open" and "Session Closed"
# Note: with stdout=1&stdin=1&stream=1: it can be used as SSH
URL="ws://${SWARM_HOST}/${CLIENT_API_VERSION}/containers/test_container/attach/ws?stderr=1"
run docker_host run --rm --net=host jimmyxian/centos7-wssh wssh $URL
[ "$status" -eq 0 ]
[[ "${output}" == *"Session Open"* ]]
[[ "${output}" == *"Session Closed"* ]]
}