def test_https_connect_timeout(self): url = '/' host, port = self.host, self.port timeout = Timeout(connect=SHORT_TIMEOUT) # Pool-global timeout pool = HTTPSConnectionPool(host, port, timeout=timeout) conn = pool._get_conn() exc = ReadTimeoutError # Until we fix it to be ConnectTimeoutError pos = 0 # Will be 1 once we fix ConnectTimeoutError with self.assertRaises(exc) as cmgr: pool._make_request(conn, 'GET', url) self.assertEqual(cmgr.exception.args[pos].split()[-1], 'timeout=%s)' % timeout.connect_timeout) # Retries retries = Retry(connect=0) self.assertRaises(MaxRetryError, pool.request, 'GET', url, retries=retries, timeout=timeout) # Request-specific connection timeouts timeout2 = Timeout(read=LONG_TIMEOUT, connect=SHORT_TIMEOUT / 100) pool = HTTPSConnectionPool(host, port, timeout=timeout2, retries=False) conn = pool._get_conn() with self.assertRaises(exc) as cmgr: pool._make_request(conn, 'GET', url, timeout=timeout2) self.assertEqual(cmgr.exception.args[pos].split()[-1], 'timeout=%s)' % timeout2.connect_timeout) pool._put_conn(conn) timeout = Timeout(connect=SHORT_TIMEOUT) with self.assertRaises(exc) as cmgr: pool.request('GET', url, timeout=timeout) self.assertEqual(cmgr.exception.args[pos].split()[-1], 'timeout=%s)' % timeout.connect_timeout)