diff --git a/tableauserverclient/server/server.py b/tableauserverclient/server/server.py index a998bd76b..a98e1c8b7 100644 --- a/tableauserverclient/server/server.py +++ b/tableauserverclient/server/server.py @@ -21,7 +21,7 @@ class PublishMode: Overwrite = 'Overwrite' CreateNew = 'CreateNew' - def __init__(self, server_address): + def __init__(self, server_address, use_server_version=False): self._server_address = server_address self._auth_token = None self._site_id = None @@ -41,6 +41,9 @@ def __init__(self, server_address): self.schedules = Schedules(self) self.server_info = ServerInfo(self) + if use_server_version: + self.use_server_version() + def add_http_options(self, options_dict): self._http_options.update(options_dict) @@ -78,9 +81,14 @@ def _determine_highest_version(self): return version - def use_highest_version(self): + def use_server_version(self): self.version = self._determine_highest_version() + def use_highest_version(self): + self.use_server_version() + import warnings + warnings.warn("use use_server_version instead", DeprecationWarning) + @property def baseurl(self): return "{0}/api/{1}".format(self._server_address, str(self.version)) diff --git a/test/assets/server_info_25.xml b/test/assets/server_info_25.xml new file mode 100644 index 000000000..1e6eaffa6 --- /dev/null +++ b/test/assets/server_info_25.xml @@ -0,0 +1,6 @@ + + +10.1.0 +2.5 + + \ No newline at end of file diff --git a/test/test_server_info.py b/test/test_server_info.py index 264d3798b..2eb763a80 100644 --- a/test/test_server_info.py +++ b/test/test_server_info.py @@ -6,6 +6,7 @@ TEST_ASSET_DIR = os.path.join(os.path.dirname(__file__), 'assets') SERVER_INFO_GET_XML = os.path.join(TEST_ASSET_DIR, 'server_info_get.xml') +SERVER_INFO_25_XML = os.path.join(TEST_ASSET_DIR, 'server_info_25.xml') SERVER_INFO_404 = os.path.join(TEST_ASSET_DIR, 'server_info_404.xml') SERVER_INFO_AUTH_INFO_XML = os.path.join(TEST_ASSET_DIR, 'server_info_auth_info.xml') @@ -51,3 +52,11 @@ def test_server_info_use_highest_version_upgrades(self): self.server.use_highest_version() # Did we upgrade to 2.4? self.assertEqual(self.server.version, '2.4') + + def test_server_use_server_version_flag(self): + with open(SERVER_INFO_25_XML, 'rb') as f: + si_response_xml = f.read().decode('utf-8') + with requests_mock.mock() as m: + m.get('http://test/api/2.4/serverInfo', text=si_response_xml) + server = TSC.Server('http://test', use_server_version=True) + self.assertEqual(server.version, '2.5')