Fix timeout value in error message

Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
This commit is contained in:
Aanand Prasad 2016-07-07 12:08:47 -07:00
parent f9c5816ab8
commit b72f911ccf
2 changed files with 22 additions and 8 deletions

View File

@ -13,7 +13,6 @@ from requests.exceptions import SSLError
from requests.packages.urllib3.exceptions import ReadTimeoutError from requests.packages.urllib3.exceptions import ReadTimeoutError
from ..const import API_VERSION_TO_ENGINE_VERSION from ..const import API_VERSION_TO_ENGINE_VERSION
from ..const import HTTP_TIMEOUT
from .utils import call_silently from .utils import call_silently
from .utils import is_mac from .utils import is_mac
from .utils import is_ubuntu from .utils import is_ubuntu
@ -46,7 +45,7 @@ def handle_connection_errors(client):
raise ConnectionError() raise ConnectionError()
except RequestsConnectionError as e: except RequestsConnectionError as e:
if e.args and isinstance(e.args[0], ReadTimeoutError): if e.args and isinstance(e.args[0], ReadTimeoutError):
log_timeout_error() log_timeout_error(client.timeout)
raise ConnectionError() raise ConnectionError()
if call_silently(['which', 'docker']) != 0: if call_silently(['which', 'docker']) != 0:
@ -66,13 +65,13 @@ def handle_connection_errors(client):
raise ConnectionError() raise ConnectionError()
def log_timeout_error(): def log_timeout_error(timeout):
log.error( log.error(
"An HTTP request took too long to complete. Retry with --verbose to " "An HTTP request took too long to complete. Retry with --verbose to "
"obtain debug information.\n" "obtain debug information.\n"
"If you encounter this issue regularly because of slow network " "If you encounter this issue regularly because of slow network "
"conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher " "conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher "
"value (current value: %s)." % HTTP_TIMEOUT) "value (current value: %s)." % timeout)
def log_api_error(e, client_version): def log_api_error(e, client_version):

View File

@ -6,6 +6,7 @@ import os
import docker import docker
import pytest import pytest
from compose.cli import errors
from compose.cli.docker_client import docker_client from compose.cli.docker_client import docker_client
from compose.cli.docker_client import tls_config_from_options from compose.cli.docker_client import tls_config_from_options
from tests import mock from tests import mock
@ -19,11 +20,25 @@ class DockerClientTestCase(unittest.TestCase):
del os.environ['HOME'] del os.environ['HOME']
docker_client(os.environ) docker_client(os.environ)
@mock.patch.dict(os.environ)
def test_docker_client_with_custom_timeout(self): def test_docker_client_with_custom_timeout(self):
timeout = 300 os.environ['COMPOSE_HTTP_TIMEOUT'] = '123'
with mock.patch('compose.cli.docker_client.HTTP_TIMEOUT', 300): client = docker_client(os.environ)
client = docker_client(os.environ) assert client.timeout == 123
self.assertEqual(client.timeout, int(timeout))
@mock.patch.dict(os.environ)
def test_custom_timeout_error(self):
os.environ['COMPOSE_HTTP_TIMEOUT'] = '123'
client = docker_client(os.environ)
with mock.patch('compose.cli.errors.log') as fake_log:
with pytest.raises(errors.ConnectionError):
with errors.handle_connection_errors(client):
raise errors.RequestsConnectionError(
errors.ReadTimeoutError(None, None, None))
assert fake_log.error.call_count == 1
assert '123' in fake_log.error.call_args[0][0]
class TLSConfigTestCase(unittest.TestCase): class TLSConfigTestCase(unittest.TestCase):