diff options
author | Corentin Henry <corentinhenry@gmail.com> | 2018-11-28 14:32:12 -0800 |
---|---|---|
committer | Corentin Henry <corentinhenry@gmail.com> | 2018-11-28 15:16:23 -0800 |
commit | 7b3b83dfdbb9f4270dcf54e1449645efc045dfd3 (patch) | |
tree | 67261c3663b12e12b87832d553fdf211a930b0dd | |
parent | 41c0eb7e804ef428da27509714df34d26a56b9a6 (diff) | |
download | docker-py-7b3b83dfdbb9f4270dcf54e1449645efc045dfd3.tar.gz |
fix exec api inconsistency
Signed-off-by: Corentin Henry <corentinhenry@gmail.com>
-rw-r--r-- | docker/utils/socket.py | 12 | ||||
-rw-r--r-- | tests/integration/api_exec_test.py | 2 | ||||
-rw-r--r-- | tests/unit/api_test.py | 2 |
3 files changed, 11 insertions, 5 deletions
diff --git a/docker/utils/socket.py b/docker/utils/socket.py index 4b32853..7ba9505 100644 --- a/docker/utils/socket.py +++ b/docker/utils/socket.py @@ -138,15 +138,21 @@ def consume_socket_output(frames, demux=False): # If the streams are demultiplexed, the generator yields tuples # (stdout, stderr) - out = [six.binary_type(), six.binary_type()] + out = [None, None] for frame in frames: # It is guaranteed that for each frame, one and only one stream # is not None. assert frame != (None, None) if frame[0] is not None: - out[0] += frame[0] + if out[0] is None: + out[0] = frame[0] + else: + out[0] += frame[0] else: - out[1] += frame[1] + if out[1] is None: + out[1] = frame[1] + else: + out[1] += frame[1] return tuple(out) diff --git a/tests/integration/api_exec_test.py b/tests/integration/api_exec_test.py index fd2f0ea..857a18c 100644 --- a/tests/integration/api_exec_test.py +++ b/tests/integration/api_exec_test.py @@ -134,7 +134,7 @@ class ExecTest(BaseAPIIntegrationTest): # tty=True, stream=False, demux=True res = self.client.exec_create(id, cmd, tty=True) exec_log = self.client.exec_start(res, demux=True) - assert exec_log == (b'hello out\r\nhello err\r\n', b'') + assert exec_log == (b'hello out\r\nhello err\r\n', None) # tty=True, stream=True, demux=True res = self.client.exec_create(id, cmd, tty=True) diff --git a/tests/unit/api_test.py b/tests/unit/api_test.py index 0f5ad7c..fac314d 100644 --- a/tests/unit/api_test.py +++ b/tests/unit/api_test.py @@ -574,7 +574,7 @@ class TCPSocketStreamTest(unittest.TestCase): def test_read_from_socket_6(self): res = self.request(stream=False, tty=True, demux=True) - assert res == (self.stdout_data + self.stderr_data, b'') + assert res == (self.stdout_data + self.stderr_data, None) def test_read_from_socket_7(self): res = self.request(stream=False, tty=False, demux=False) |