Always send attach request as streaming

Signed-off-by: Joffrey F <joffrey@docker.com>
This commit is contained in:
Joffrey F 2017-08-21 14:41:10 -07:00 committed by Joffrey F
parent fc6773d673
commit 0c2b4e4d3a
2 changed files with 13 additions and 5 deletions

View File

@ -50,7 +50,7 @@ class ContainerApiMixin(object):
}
u = self._url("/containers/{0}/attach", container)
response = self._post(u, headers=headers, params=params, stream=stream)
response = self._post(u, headers=headers, params=params, stream=True)
return self._read_from_socket(
response, stream, self._check_is_tty(container)

View File

@ -1092,20 +1092,28 @@ class AttachContainerTest(BaseAPIIntegrationTest):
command = "printf '{0}'".format(line)
container = self.client.create_container(BUSYBOX, command,
detach=True, tty=False)
ident = container['Id']
self.tmp_containers.append(ident)
self.tmp_containers.append(container)
opts = {"stdout": 1, "stream": 1, "logs": 1}
pty_stdout = self.client.attach_socket(ident, opts)
pty_stdout = self.client.attach_socket(container, opts)
self.addCleanup(pty_stdout.close)
self.client.start(ident)
self.client.start(container)
next_size = next_frame_size(pty_stdout)
self.assertEqual(next_size, len(line))
data = read_exactly(pty_stdout, next_size)
self.assertEqual(data.decode('utf-8'), line)
def test_attach_no_stream(self):
container = self.client.create_container(
BUSYBOX, 'echo hello'
)
self.tmp_containers.append(container)
self.client.start(container)
output = self.client.attach(container, stream=False, logs=True)
assert output == 'hello\n'.encode(encoding='ascii')
class PauseTest(BaseAPIIntegrationTest):
def test_pause_unpause(self):