Merge pull request #2327 from docker/demux_test_fixes

Streaming TTY messages sometimes get truncated
This commit is contained in:
Joffrey F 2019-05-01 01:30:29 -07:00 committed by GitHub
commit be9cf3e39e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 8 deletions

View File

@ -18,7 +18,7 @@ import six
from .base import BUSYBOX, BaseAPIIntegrationTest
from .. import helpers
from ..helpers import (
requires_api_version, ctrl_with, assert_cat_socket_detached_with_keys
assert_cat_socket_detached_with_keys, ctrl_with, requires_api_version,
)
@ -1163,10 +1163,10 @@ class RestartContainerTest(BaseAPIIntegrationTest):
def test_restart_with_low_timeout(self):
container = self.client.create_container(BUSYBOX, ['sleep', '9999'])
self.client.start(container)
self.client.timeout = 1
self.client.restart(container, timeout=3)
self.client.timeout = 3
self.client.restart(container, timeout=1)
self.client.timeout = None
self.client.restart(container, timeout=3)
self.client.restart(container, timeout=1)
self.client.kill(container)
def test_restart_with_dict_instead_of_id(self):

View File

@ -304,9 +304,13 @@ class ExecDemuxTest(BaseAPIIntegrationTest):
# tty=True, stream=True, demux=False
res = self.client.exec_create(self.container, self.cmd, tty=True)
exec_log = list(self.client.exec_start(res, stream=True))
assert len(exec_log) == 2
assert b'hello out\r\n' in exec_log
assert b'hello err\r\n' in exec_log
if len(exec_log) == 2:
assert b'hello err\r\n' in exec_log
else:
assert len(exec_log) == 3
assert b'hello err' in exec_log
assert b'\r\n' in exec_log
def test_exec_command_tty_no_stream_demux(self):
# tty=True, stream=False, demux=True
@ -318,6 +322,10 @@ class ExecDemuxTest(BaseAPIIntegrationTest):
# tty=True, stream=True, demux=True
res = self.client.exec_create(self.container, self.cmd, tty=True)
exec_log = list(self.client.exec_start(res, demux=True, stream=True))
assert len(exec_log) == 2
assert (b'hello out\r\n', None) in exec_log
assert (b'hello err\r\n', None) in exec_log
if len(exec_log) == 2:
assert (b'hello err\r\n', None) in exec_log
else:
assert len(exec_log) == 3
assert (b'hello err', None) in exec_log
assert (b'\r\n', None) in exec_log