From ae8f77737c164d2474681f839c43f51400b9e119 Mon Sep 17 00:00:00 2001 From: Joffrey F Date: Wed, 25 Apr 2018 15:12:49 -0700 Subject: [PATCH] Fix session timeout = None case Signed-off-by: Joffrey F --- docker/api/container.py | 15 +++++++-------- tests/integration/api_container_test.py | 12 +++++------- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/docker/api/container.py b/docker/api/container.py index 4a49bab8..05676f11 100644 --- a/docker/api/container.py +++ b/docker/api/container.py @@ -1018,9 +1018,10 @@ class ContainerApiMixin(object): """ params = {'t': timeout} url = self._url("/containers/{0}/restart", container) - res = self._post( - url, params=params, timeout=timeout + (self.timeout or 0) - ) + conn_timeout = self.timeout + if conn_timeout is not None: + conn_timeout += timeout + res = self._post(url, params=params, timeout=conn_timeout) self._raise_for_status(res) @utils.check_resource('container') @@ -1110,11 +1111,9 @@ class ContainerApiMixin(object): params = {'t': timeout} url = self._url("/containers/{0}/stop", container) conn_timeout = self.timeout - if conn_timeout: - conn_timeout = max(conn_timeout, timeout + 15) - res = self._post( - url, params=params, timeout=timeout + (self.timeout or 0) - ) + if conn_timeout is not None: + conn_timeout += timeout + res = self._post(url, params=params, timeout=conn_timeout) self._raise_for_status(res) @utils.check_resource('container') diff --git a/tests/integration/api_container_test.py b/tests/integration/api_container_test.py index da9b3ec6..afd439f9 100644 --- a/tests/integration/api_container_test.py +++ b/tests/integration/api_container_test.py @@ -1165,16 +1165,14 @@ class RestartContainerTest(BaseAPIIntegrationTest): assert info2['State']['Running'] is True self.client.kill(id) - def test_restart_with_high_timeout(self): + def test_restart_with_low_timeout(self): container = self.client.create_container(BUSYBOX, ['sleep', '9999']) - id = container['Id'] - self.client.start(id) + self.client.start(container) self.client.timeout = 1 - self.client.restart(id, timeout=3) + self.client.restart(container, timeout=3) self.client.timeout = None - self.client.restart(id, timeout=3) - self.client.timeout = 1 - self.client.stop(id, timeout=3) + self.client.restart(container, timeout=3) + self.client.kill(container) def test_restart_with_dict_instead_of_id(self): container = self.client.create_container(BUSYBOX, ['sleep', '9999'])