From c2611e92eb003de822d88c101ed8988a9218da9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Honza=20Kr=C3=A1l?= Date: Thu, 23 Jan 2014 08:48:42 +0100 Subject: [PATCH] Set timeout properly for Requests and Thrift connections --- elasticsearch/connection/base.py | 2 +- elasticsearch/connection/http_urllib3.py | 2 +- test_elasticsearch/test_connection.py | 11 +++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/elasticsearch/connection/base.py b/elasticsearch/connection/base.py index 7fffaf78..16c0b97a 100644 --- a/elasticsearch/connection/base.py +++ b/elasticsearch/connection/base.py @@ -28,7 +28,7 @@ class Connection(object): if url_prefix: url_prefix = '/' + url_prefix.strip('/') self.url_prefix = url_prefix - self.timeout = 10 + self.timeout = timeout def __repr__(self): return '<%s: %s>' % (self.__class__.__name__, self.host) diff --git a/elasticsearch/connection/http_urllib3.py b/elasticsearch/connection/http_urllib3.py index 7196004d..f41d24bc 100644 --- a/elasticsearch/connection/http_urllib3.py +++ b/elasticsearch/connection/http_urllib3.py @@ -30,7 +30,7 @@ class Urllib3HttpConnection(Connection): if use_ssl: pool_class = urllib3.HTTPSConnectionPool - self.pool = pool_class(host, port=port, timeout=kwargs.get('timeout', None), headers=headers, maxsize=maxsize) + self.pool = pool_class(host, port=port, timeout=self.timeout, headers=headers, maxsize=maxsize) def perform_request(self, method, url, params=None, body=None, timeout=None, ignore=()): url = self.url_prefix + url diff --git a/test_elasticsearch/test_connection.py b/test_elasticsearch/test_connection.py index 4f776327..52a977b9 100644 --- a/test_elasticsearch/test_connection.py +++ b/test_elasticsearch/test_connection.py @@ -24,8 +24,15 @@ class TestThriftConnection(TestCase): con = ThriftConnection() self.assertIs(con._tsocket_class, TSocket.TSocket) + def test_timeout_set(self): + con = ThriftConnection(timeout=42) + self.assertEquals(42, con.timeout) class TestUrllib3Connection(TestCase): + def test_timeout_set(self): + con = Urllib3HttpConnection(timeout=42) + self.assertEquals(42, con.timeout) + def test_http_auth(self): con = Urllib3HttpConnection(http_auth='username:secret') self.assertEquals({'authorization': 'Basic dXNlcm5hbWU6c2VjcmV0'}, con.pool.headers) @@ -72,6 +79,10 @@ class TestRequestsConnection(TestCase): self.assertEquals(1, len(args)) return args[0] + def test_timeout_set(self): + con = RequestsHttpConnection(timeout=42) + self.assertEquals(42, con.timeout) + def test_use_https_if_specified(self): con = self._get_mock_connection({'use_ssl': True, 'url_prefix': 'url'}) request = self._get_request(con, 'GET', '/')