diff --git a/tableauserverclient/models/group_item.py b/tableauserverclient/models/group_item.py index ba9beec27..3cf82621f 100644 --- a/tableauserverclient/models/group_item.py +++ b/tableauserverclient/models/group_item.py @@ -9,13 +9,17 @@ class GroupItem(object): tag_name = 'group' - def __init__(self, name=None): - self._domain_name = None + class LicenseMode: + onLogin = 'onLogin' + onSync = 'onSync' + + def __init__(self, name=None, domain_name=None): self._id = None - self._users = None - self.name = name self._license_mode = None self._minimum_site_role = None + self._users = None + self.name = name + self.domain_name = domain_name @property def domain_name(self): @@ -43,8 +47,8 @@ def license_mode(self): return self._license_mode @license_mode.setter + @property_is_enum(LicenseMode) def license_mode(self, value): - # valid values = onSync, onLogin self._license_mode = value @property diff --git a/tableauserverclient/server/request_factory.py b/tableauserverclient/server/request_factory.py index 2325a52de..d6e962be3 100644 --- a/tableauserverclient/server/request_factory.py +++ b/tableauserverclient/server/request_factory.py @@ -277,10 +277,8 @@ def create_local_req(self, group_item): xml_request = ET.Element('tsRequest') group_element = ET.SubElement(xml_request, 'group') group_element.attrib['name'] = group_item.name - if group_item.license_mode is not None: - group_element.attrib['grantLicenseMode'] = group_item.license_mode if group_item.minimum_site_role is not None: - group_element.attrib['SiteRole'] = group_item.minimum_site_role + group_element.attrib['minimumSiteRole'] = group_item.minimum_site_role return ET.tostring(xml_request) def create_ad_req(self, group_item): @@ -295,9 +293,9 @@ def create_ad_req(self, group_item): import_element.attrib['domainName'] = group_item.domain_name if group_item.license_mode is not None: - import_element.attrib['grantLicenseMode'] = group_item.license + import_element.attrib['grantLicenseMode'] = group_item.license_mode if group_item.minimum_site_role is not None: - import_element.attrib['SiteRole'] = group_item.minimum_site_role + import_element.attrib['siteRole'] = group_item.minimum_site_role return ET.tostring(xml_request) def update_req(self, group_item, default_site_role=None): diff --git a/test/test_group_model.py b/test/test_group_model.py index eb11adcdd..617a5d954 100644 --- a/test/test_group_model.py +++ b/test/test_group_model.py @@ -12,3 +12,13 @@ def test_invalid_name(self): with self.assertRaises(ValueError): group.name = "" + + def test_invalid_minimum_site_role(self): + group = TSC.GroupItem("grp") + with self.assertRaises(ValueError): + group.minimum_site_role = "Captain" + + def test_invalid_license_mode(self): + group = TSC.GroupItem("grp") + with self.assertRaises(ValueError): + group.license_mode = "off"