summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorentin Henry <corentinhenry@gmail.com>2018-11-28 14:32:12 -0800
committerCorentin Henry <corentinhenry@gmail.com>2018-11-28 15:16:23 -0800
commit7b3b83dfdbb9f4270dcf54e1449645efc045dfd3 (patch)
tree67261c3663b12e12b87832d553fdf211a930b0dd
parent41c0eb7e804ef428da27509714df34d26a56b9a6 (diff)
downloaddocker-py-7b3b83dfdbb9f4270dcf54e1449645efc045dfd3.tar.gz
fix exec api inconsistency
Signed-off-by: Corentin Henry <corentinhenry@gmail.com>
-rw-r--r--docker/utils/socket.py12
-rw-r--r--tests/integration/api_exec_test.py2
-rw-r--r--tests/unit/api_test.py2
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)