Kaydet (Commit) 6e6eaece authored tarafından Joffrey F's avatar Joffrey F

Return tuple instead of dict in exec_run

Signed-off-by: 's avatarJoffrey F <joffrey@docker.com>
üst b0cc4b55
...@@ -150,13 +150,13 @@ class Container(Model): ...@@ -150,13 +150,13 @@ class Container(Model):
workdir (str): Path to working directory for this exec session workdir (str): Path to working directory for this exec session
Returns: Returns:
dict: (tuple): A tuple of (exit_code, output)
exit_code: (int):
Exit code for the executed command
output: (generator or str): output: (generator or str):
If ``stream=True``, a generator yielding response chunks. If ``stream=True``, a generator yielding response chunks.
If ``socket=True``, a socket object for the connection. If ``socket=True``, a socket object for the connection.
A string containing response data otherwise. A string containing response data otherwise.
exit_code: (int):
Exited code of execution
Raises: Raises:
:py:class:`docker.errors.APIError` :py:class:`docker.errors.APIError`
...@@ -173,10 +173,7 @@ class Container(Model): ...@@ -173,10 +173,7 @@ class Container(Model):
exit_code = 0 exit_code = 0
if stream is False: if stream is False:
exit_code = self.client.api.exec_inspect(resp['Id'])['ExitCode'] exit_code = self.client.api.exec_inspect(resp['Id'])['ExitCode']
return { return (exit_code, exec_output)
'exit_code': exit_code,
'output': exec_output
}
def export(self): def export(self):
""" """
......
...@@ -189,8 +189,8 @@ class ContainerTest(BaseIntegrationTest): ...@@ -189,8 +189,8 @@ class ContainerTest(BaseIntegrationTest):
) )
self.tmp_containers.append(container.id) self.tmp_containers.append(container.id)
exec_output = container.exec_run("cat /test") exec_output = container.exec_run("cat /test")
assert exec_output["output"] == b"hello\n" assert exec_output[0] == 0
assert exec_output["exit_code"] == 0 assert exec_output[1] == b"hello\n"
def test_exec_run_failed(self): def test_exec_run_failed(self):
client = docker.from_env(version=TEST_API_VERSION) client = docker.from_env(version=TEST_API_VERSION)
...@@ -199,7 +199,7 @@ class ContainerTest(BaseIntegrationTest): ...@@ -199,7 +199,7 @@ class ContainerTest(BaseIntegrationTest):
) )
self.tmp_containers.append(container.id) self.tmp_containers.append(container.id)
exec_output = container.exec_run("docker ps") exec_output = container.exec_run("docker ps")
assert exec_output["exit_code"] == 126 assert exec_output[0] == 126
def test_kill(self): def test_kill(self):
client = docker.from_env(version=TEST_API_VERSION) client = docker.from_env(version=TEST_API_VERSION)
......
...@@ -400,13 +400,15 @@ class ContainerTest(unittest.TestCase): ...@@ -400,13 +400,15 @@ class ContainerTest(unittest.TestCase):
client.api.exec_start.assert_called_with( client.api.exec_start.assert_called_with(
FAKE_EXEC_ID, detach=False, tty=False, stream=True, socket=False FAKE_EXEC_ID, detach=False, tty=False, stream=True, socket=False
) )
def test_exec_run_failure(self):
client = make_fake_client()
container = client.containers.get(FAKE_CONTAINER_ID)
container.exec_run("docker ps", privileged=True, stream=False) container.exec_run("docker ps", privileged=True, stream=False)
client.api.exec_create.assert_called_with( client.api.exec_create.assert_called_with(
FAKE_CONTAINER_ID, "docker ps", stdout=True, stderr=True, FAKE_CONTAINER_ID, "docker ps", stdout=True, stderr=True,
stdin=False, tty=False, privileged=True, user='', environment=None stdin=False, tty=False, privileged=True, user='', environment=None,
) workdir=None
client.api.exec_start.assert_called_with(
FAKE_EXEC_ID, detach=False, tty=False, stream=False, socket=False
) )
client.api.exec_start.assert_called_with( client.api.exec_start.assert_called_with(
FAKE_EXEC_ID, detach=False, tty=False, stream=False, socket=False FAKE_EXEC_ID, detach=False, tty=False, stream=False, socket=False
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment