summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Firshman <ben@firshman.co.uk>2016-12-05 11:00:10 +0000
committerGitHub <noreply@github.com>2016-12-05 11:00:10 +0000
commitdd8ad21c88021d1c19e4cec034e6ff9413cac481 (patch)
tree14725a4c2c82e0f1c9bedc128cee71ed0ebb0623
parentc02493cf18bbb0b28bce7934b45a042147671be2 (diff)
parent515db1f6fd8db15edda33b72cd6f0fd955f8d777 (diff)
downloaddocker-py-dd8ad21c88021d1c19e4cec034e6ff9413cac481.tar.gz
Merge pull request #1272 from TomasTomecek/1271-fix-detach-in-exec-start
exec: fix running with detach=True
-rw-r--r--docker/api/exec_api.py3
-rw-r--r--tests/integration/api_exec_test.py15
2 files changed, 17 insertions, 1 deletions
diff --git a/docker/api/exec_api.py b/docker/api/exec_api.py
index 694b30a..6c3e638 100644
--- a/docker/api/exec_api.py
+++ b/docker/api/exec_api.py
@@ -137,7 +137,8 @@ class ExecApiMixin(object):
data=data,
stream=True
)
-
+ if detach:
+ return self._result(res)
if socket:
return self._get_raw_response_socket(res)
return self._read_from_socket(res, stream)
diff --git a/tests/integration/api_exec_test.py b/tests/integration/api_exec_test.py
index 0ceeefa..55286e3 100644
--- a/tests/integration/api_exec_test.py
+++ b/tests/integration/api_exec_test.py
@@ -93,6 +93,21 @@ class ExecTest(BaseAPIIntegrationTest):
data = read_exactly(socket, next_size)
self.assertEqual(data.decode('utf-8'), line)
+ def test_exec_start_detached(self):
+ container = self.client.create_container(BUSYBOX, 'cat',
+ detach=True, stdin_open=True)
+ container_id = container['Id']
+ self.client.start(container_id)
+ self.tmp_containers.append(container_id)
+
+ exec_id = self.client.exec_create(
+ container_id, ['printf', "asdqwe"])
+ self.assertIn('Id', exec_id)
+
+ response = self.client.exec_start(exec_id, detach=True)
+
+ self.assertEqual(response, "")
+
def test_exec_inspect(self):
container = self.client.create_container(BUSYBOX, 'cat',
detach=True, stdin_open=True)