mirror of https://github.com/docker/compose.git
Fix timeout value in error message
Signed-off-by: Aanand Prasad <aanand.prasad@gmail.com>
This commit is contained in:
parent
f9c5816ab8
commit
b72f911ccf
|
@ -13,7 +13,6 @@ from requests.exceptions import SSLError
|
|||
from requests.packages.urllib3.exceptions import ReadTimeoutError
|
||||
|
||||
from ..const import API_VERSION_TO_ENGINE_VERSION
|
||||
from ..const import HTTP_TIMEOUT
|
||||
from .utils import call_silently
|
||||
from .utils import is_mac
|
||||
from .utils import is_ubuntu
|
||||
|
@ -46,7 +45,7 @@ def handle_connection_errors(client):
|
|||
raise ConnectionError()
|
||||
except RequestsConnectionError as e:
|
||||
if e.args and isinstance(e.args[0], ReadTimeoutError):
|
||||
log_timeout_error()
|
||||
log_timeout_error(client.timeout)
|
||||
raise ConnectionError()
|
||||
|
||||
if call_silently(['which', 'docker']) != 0:
|
||||
|
@ -66,13 +65,13 @@ def handle_connection_errors(client):
|
|||
raise ConnectionError()
|
||||
|
||||
|
||||
def log_timeout_error():
|
||||
def log_timeout_error(timeout):
|
||||
log.error(
|
||||
"An HTTP request took too long to complete. Retry with --verbose to "
|
||||
"obtain debug information.\n"
|
||||
"If you encounter this issue regularly because of slow network "
|
||||
"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):
|
||||
|
|
|
@ -6,6 +6,7 @@ import os
|
|||
import docker
|
||||
import pytest
|
||||
|
||||
from compose.cli import errors
|
||||
from compose.cli.docker_client import docker_client
|
||||
from compose.cli.docker_client import tls_config_from_options
|
||||
from tests import mock
|
||||
|
@ -19,11 +20,25 @@ class DockerClientTestCase(unittest.TestCase):
|
|||
del os.environ['HOME']
|
||||
docker_client(os.environ)
|
||||
|
||||
@mock.patch.dict(os.environ)
|
||||
def test_docker_client_with_custom_timeout(self):
|
||||
timeout = 300
|
||||
with mock.patch('compose.cli.docker_client.HTTP_TIMEOUT', 300):
|
||||
client = docker_client(os.environ)
|
||||
self.assertEqual(client.timeout, int(timeout))
|
||||
os.environ['COMPOSE_HTTP_TIMEOUT'] = '123'
|
||||
client = docker_client(os.environ)
|
||||
assert client.timeout == 123
|
||||
|
||||
@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):
|
||||
|
|
Loading…
Reference in New Issue