Skip to content

Commit 2fef6ab

Browse files
author
Russell Hay
authored
Feature 99 add flag to use server version (#168)
* Added a flag to the server object to allow you go use the server version by default * I disliked the 'highest version' I think server version makes more sense. * ctor should use the non-dep function
1 parent e7495f6 commit 2fef6ab

File tree

3 files changed

+25
-2
lines changed

3 files changed

+25
-2
lines changed

tableauserverclient/server/server.py

+10-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class PublishMode:
2121
Overwrite = 'Overwrite'
2222
CreateNew = 'CreateNew'
2323

24-
def __init__(self, server_address):
24+
def __init__(self, server_address, use_server_version=False):
2525
self._server_address = server_address
2626
self._auth_token = None
2727
self._site_id = None
@@ -41,6 +41,9 @@ def __init__(self, server_address):
4141
self.schedules = Schedules(self)
4242
self.server_info = ServerInfo(self)
4343

44+
if use_server_version:
45+
self.use_server_version()
46+
4447
def add_http_options(self, options_dict):
4548
self._http_options.update(options_dict)
4649

@@ -78,9 +81,14 @@ def _determine_highest_version(self):
7881

7982
return version
8083

81-
def use_highest_version(self):
84+
def use_server_version(self):
8285
self.version = self._determine_highest_version()
8386

87+
def use_highest_version(self):
88+
self.use_server_version()
89+
import warnings
90+
warnings.warn("use use_server_version instead", DeprecationWarning)
91+
8492
@property
8593
def baseurl(self):
8694
return "{0}/api/{1}".format(self._server_address, str(self.version))

test/assets/server_info_25.xml

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<tsResponse xmlns="http://tableau.com/api" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.4.xsd">
2+
<serverInfo>
3+
<productVersion build="10100.16.1024.2100">10.1.0</productVersion>
4+
<restApiVersion>2.5</restApiVersion>
5+
</serverInfo>
6+
</tsResponse>

test/test_server_info.py

+9
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
TEST_ASSET_DIR = os.path.join(os.path.dirname(__file__), 'assets')
77

88
SERVER_INFO_GET_XML = os.path.join(TEST_ASSET_DIR, 'server_info_get.xml')
9+
SERVER_INFO_25_XML = os.path.join(TEST_ASSET_DIR, 'server_info_25.xml')
910
SERVER_INFO_404 = os.path.join(TEST_ASSET_DIR, 'server_info_404.xml')
1011
SERVER_INFO_AUTH_INFO_XML = os.path.join(TEST_ASSET_DIR, 'server_info_auth_info.xml')
1112

@@ -51,3 +52,11 @@ def test_server_info_use_highest_version_upgrades(self):
5152
self.server.use_highest_version()
5253
# Did we upgrade to 2.4?
5354
self.assertEqual(self.server.version, '2.4')
55+
56+
def test_server_use_server_version_flag(self):
57+
with open(SERVER_INFO_25_XML, 'rb') as f:
58+
si_response_xml = f.read().decode('utf-8')
59+
with requests_mock.mock() as m:
60+
m.get('http://test/api/2.4/serverInfo', text=si_response_xml)
61+
server = TSC.Server('http://test', use_server_version=True)
62+
self.assertEqual(server.version, '2.5')

0 commit comments

Comments
 (0)