Fix missing timeout argument for http.client transport (#175)
diff --git a/google/auth/transport/_http_client.py b/google/auth/transport/_http_client.py
index 3cf5583..4a10096 100644
--- a/google/auth/transport/_http_client.py
+++ b/google/auth/transport/_http_client.py
@@ -94,7 +94,7 @@
'http.client transport only supports the http scheme, {}'
'was specified'.format(parts.scheme))
- connection = http_client.HTTPConnection(parts.netloc)
+ connection = http_client.HTTPConnection(parts.netloc, timeout=timeout)
try:
_LOGGER.debug('Making request: %s %s', method, url)
diff --git a/tests/transport/compliance.py b/tests/transport/compliance.py
index 6d2a304..50c6d7c 100644
--- a/tests/transport/compliance.py
+++ b/tests/transport/compliance.py
@@ -12,6 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+import time
+
import flask
import pytest
from pytest_localserver.http import WSGIServer
@@ -47,6 +49,11 @@
@app.route('/server_error')
def server_error():
return 'Error', http_client.INTERNAL_SERVER_ERROR
+
+ @app.route('/wait')
+ def wait():
+ time.sleep(3)
+ return 'Waited'
# pylint: enable=unused-variable
server = WSGIServer(application=app.wsgi_app)
@@ -62,7 +69,7 @@
assert response.headers['x-test-header'] == 'value'
assert response.data == b'Basic Content'
- def test_request_timeout(self, server):
+ def test_request_with_timeout_success(self, server):
request = self.make_request()
response = request(url=server.url + '/basic', method='GET', timeout=2)
@@ -70,6 +77,12 @@
assert response.headers['x-test-header'] == 'value'
assert response.data == b'Basic Content'
+ def test_request_with_timeout_failure(self, server):
+ request = self.make_request()
+
+ with pytest.raises(exceptions.TransportError):
+ request(url=server.url + '/wait', method='GET', timeout=1)
+
def test_request_headers(self, server):
request = self.make_request()
response = request(