From a30cab0e71f4d1ffee91feb75364c92a3c4180ff Mon Sep 17 00:00:00 2001 From: Russell Hay Date: Mon, 10 Apr 2017 11:46:04 -0700 Subject: [PATCH 1/3] Added a flag to the server object to allow you go use the server version by default --- tableauserverclient/server/server.py | 5 ++++- test/assets/server_info_25.xml | 6 ++++++ test/test_server_info.py | 9 +++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 test/assets/server_info_25.xml diff --git a/tableauserverclient/server/server.py b/tableauserverclient/server/server.py index a998bd76b..0b6b9b7e3 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_highest_version() + def add_http_options(self, options_dict): self._http_options.update(options_dict) 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') From eb3d0848fdf0c688b50f0f2685a54ee81b814e2e Mon Sep 17 00:00:00 2001 From: Russell Hay Date: Mon, 10 Apr 2017 11:53:47 -0700 Subject: [PATCH 2/3] I disliked the 'highest version' I think server version makes more sense. --- tableauserverclient/server/server.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tableauserverclient/server/server.py b/tableauserverclient/server/server.py index 0b6b9b7e3..d3551ee0b 100644 --- a/tableauserverclient/server/server.py +++ b/tableauserverclient/server/server.py @@ -81,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)) From 4476bd490bf41094e011cc8ff5979385772cc8ba Mon Sep 17 00:00:00 2001 From: Russell Hay Date: Mon, 10 Apr 2017 14:09:27 -0700 Subject: [PATCH 3/3] ctor should use the non-dep function --- tableauserverclient/server/server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tableauserverclient/server/server.py b/tableauserverclient/server/server.py index d3551ee0b..a98e1c8b7 100644 --- a/tableauserverclient/server/server.py +++ b/tableauserverclient/server/server.py @@ -42,7 +42,7 @@ def __init__(self, server_address, use_server_version=False): self.server_info = ServerInfo(self) if use_server_version: - self.use_highest_version() + self.use_server_version() def add_http_options(self, options_dict): self._http_options.update(options_dict)