From 5e79cb612e41349f8f379173abb95bfe424bcd6c Mon Sep 17 00:00:00 2001 From: Aki Ariga Date: Wed, 1 Jul 2020 11:19:14 +0900 Subject: [PATCH] Ensure endpoint starts with 'https://' if scheme not given --- tdclient/api.py | 14 +++++++++----- tdclient/test/api_test.py | 7 +++++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/tdclient/api.py b/tdclient/api.py index 7ab6c50..26837e5 100644 --- a/tdclient/api.py +++ b/tdclient/api.py @@ -33,11 +33,13 @@ from tdclient.server_status_api import ServerStatusAPI from tdclient.table_api import TableAPI from tdclient.user_api import UserAPI -from tdclient.util import normalized_msgpack -from tdclient.util import csv_dict_record_reader -from tdclient.util import csv_text_record_reader -from tdclient.util import read_csv_records -from tdclient.util import validate_record +from tdclient.util import ( + csv_dict_record_reader, + csv_text_record_reader, + normalized_msgpack, + read_csv_records, + validate_record, +) try: import certifi @@ -107,6 +109,8 @@ def __init__( self._user_agent = "TD-Client-Python/%s" % (version.__version__) if endpoint is not None: + if not urlparse.urlparse(endpoint).scheme: + endpoint = "https://{}".format(endpoint) self._endpoint = endpoint elif os.getenv("TD_API_SERVER"): self._endpoint = os.getenv("TD_API_SERVER") diff --git a/tdclient/test/api_test.py b/tdclient/test/api_test.py index f26f1ef..1c5cd62 100644 --- a/tdclient/test/api_test.py +++ b/tdclient/test/api_test.py @@ -98,6 +98,13 @@ def test_https_endpoint_with_custom_path(): assert "https://api.example.com/v1/" == url +def test_https_endpoint(): + td = api.API("apikey", endpoint="api.example.com") + assert isinstance(td.http, urllib3.PoolManager) + url, headers = td.build_request() + assert "https://api.example.com" == url + + def test_http_proxy_from_environ(): os.environ["HTTP_PROXY"] = "proxy1.example.com:8080" td = api.API("apikey")