Skip to content

Commit ad78db4

Browse files
committed
fix behavior when url has no protocol
remove warnings fix behavior when url has no protocol
1 parent 0ee46b8 commit ad78db4

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

tableauserverclient/server/server.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import logging
2-
import warnings
32

43
import requests
54
import urllib3
@@ -63,10 +62,6 @@ def __init__(self, server_address, use_server_version=False, http_options=None,
6362
self._site_id = None
6463
self._user_id = None
6564

66-
# TODO: this needs to change to default to https, but without breaking existing code
67-
if not server_address.startswith("http://") and not server_address.startswith("https://"):
68-
server_address = "http://" + server_address
69-
7065
self._server_address: str = server_address
7166
self._session_factory = session_factory or requests.session
7267

@@ -96,6 +91,8 @@ def __init__(self, server_address, use_server_version=False, http_options=None,
9691
self.flow_runs = FlowRuns(self)
9792
self.metrics = Metrics(self)
9893

94+
self.logger = logging.getLogger("TSC.server")
95+
9996
self._session = self._session_factory()
10097
self._http_options = dict() # must set this before making a server call
10198
if http_options:
@@ -110,6 +107,9 @@ def __init__(self, server_address, use_server_version=False, http_options=None,
110107
def validate_connection_settings(self):
111108
try:
112109
Endpoint(self).set_parameters(self._http_options, None, None, None, None)
110+
if not server_address.startswith("http://") and not server_address.startswith("https://"):
111+
self._server_address = "http://" + self._server_address
112+
self._session.prepare_request(requests.Request("GET", url=self._server_address, params=self._http_options))
113113
except Exception as req_ex:
114114
raise ValueError("Server connection settings not valid", req_ex)
115115

@@ -149,8 +149,8 @@ def _get_legacy_version(self):
149149
try:
150150
info_xml = fromstring(response.content)
151151
except ParseError as parseError:
152-
logging.getLogger("TSC.server").info(parseError)
153-
logging.getLogger("TSC.server").info(
152+
logger.info(parseError)
153+
logger.info(
154154
"Could not read server version info. The server may not be running or configured."
155155
)
156156
return self.version
@@ -165,7 +165,8 @@ def _determine_highest_version(self):
165165
version = self.server_info.get().rest_api_version
166166
except ServerInfoEndpointNotFoundError:
167167
version = self._get_legacy_version()
168-
except BaseException:
168+
except BaseException as e:
169+
logger.info("Could not get version info from server, guessing {}".format(e.__class__))
169170
version = self._get_legacy_version()
170171

171172
self.version = old_version
@@ -177,7 +178,7 @@ def use_server_version(self):
177178

178179
def use_highest_version(self):
179180
self.use_server_version()
180-
warnings.warn("use use_server_version instead", DeprecationWarning)
181+
logger.info("use use_server_version instead", DeprecationWarning)
181182

182183
def check_at_least_version(self, target: str):
183184
server_version = Version(self.version or "0.0")

test/http/test_http_requests.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ def test_init_server_model_valid_https_server_name_works(self):
4343
def test_init_server_model_bad_server_name_not_version_check(self):
4444
server = TSC.Server("fake-url", use_server_version=False)
4545

46-
def test_init_server_model_bad_server_name_do_version_check(self):
47-
with self.assertRaises(requests.exceptions.ConnectionError):
48-
server = TSC.Server("fake-url", use_server_version=True)
46+
@mock.patch("requests.sessions.Session.get", side_effect=mocked_requests_get)
47+
def test_init_server_model_bad_server_name_do_version_check(self, mock_get):
48+
server = TSC.Server("fake-url", use_server_version=True)
4949

5050
def test_init_server_model_bad_server_name_not_version_check_random_options(self):
5151
# with self.assertRaises(MissingSchema):

0 commit comments

Comments
 (0)