8000 Improves group creation for both local and AD (#770) · tableau/server-client-python@861c653 · GitHub
[go: up one dir, main page]

Skip to content

Commit 861c653

Browse files
author
Chris Shin
authored
Improves group creation for both local and AD (#770)
* Fixes local and ad group creation * Adds tests for validating group field values
1 parent a81562d commit 861c653

File tree

3 files changed

+22
-10
lines changed

3 files changed

+22
-10
lines changed

tableauserverclient/models/group_item.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,17 @@ class GroupItem(object):
99

1010
tag_name = 'group'
1111

12-
def __init__(self, name=None):
13-
self._domain_name = None
12+
class LicenseMode:
13+
onLogin = 'onLogin'
14+
onSync = 'onSync'
15+
16+
def __init__(self, name=None, domain_name=None):
1417
self._id = None
15-
self._users = None
16-
self.name = name
1718
self._license_mode = None
1819
self._minimum_site_role = None
20+
self._users = None
21+
self.name = name
22+
self.domain_name = domain_name
1923

2024
@property
2125
def domain_name(self):
@@ -43,8 +47,8 @@ def license_mode(self):
4347
return self._license_mode
4448

4549
@license_mode.setter
50+
@property_is_enum(LicenseMode)
4651
def license_mode(self, value):
47-
# valid values = onSync, onLogin
4852
self._license_mode = value
4953

5054
@property

tableauserverclient/server/request_factory.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -277,10 +277,8 @@ def create_local_req(self, group_item):
277277
xml_request = ET.Element('tsRequest')
278278
group_element = ET.SubElement(xml_request, 'group')
279279
group_element.attrib['name'] = group_item.name
280-
if group_item.license_mode is not None:
281-
group_element.attrib['grantLicenseMode'] = group_item.license_mode
282280
if group_item.minimum_site_role is not None:
283-
group_element.attrib['SiteRole'] = group_item.minimum_site_role
281+
group_element.attrib['minimumSiteRole'] = group_item.minimum_site_role
284282
return ET.tostring(xml_request)
285283

286284
def create_ad_req(self, group_item):
@@ -295,9 +293,9 @@ def create_ad_req(self, group_item):
295293

296294
import_element.attrib['domainName'] = group_item.domain_name
297295
if group_item.license_mode is not None:
298-
import_element.attrib['grantLicenseMode'] = group_item.license
296+
import_element.attrib['grantLicenseMode'] = group_item.license_mode
299297
if group_item.minimum_site_role is not None:
300-
import_element.attrib['SiteRole'] = group_item.minimum_site_role
298+
import_element.attrib['siteRole'] = group_item.minimum_site_role
301299
return ET.tostring(xml_request)
302300

303301
def update_req(self, group_item, default_site_role=None):

test/test_group_model.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,13 @@ def test_invalid_name(self):
1212

1313
with self.assertRaises(ValueError):
1414
group.name = ""
15+
16+
def test_invalid_minimum_site_role(self):
17+
group = TSC.GroupItem("grp")
18+
with self.assertRaises(ValueError):
19+
group.minimum_site_role = "Captain"
20+
21+
def test_invalid_license_mode(self):
22+
group = TSC.GroupItem("grp")
23+
with self.assertRaises(ValueError):
24+
group.license_mode = "off"

0 commit comments

Comments
 (0)
0