8000 Adds description as a read-only attribute of WorkbookItem · tableau/server-client-python@a3d9a94 · GitHub
[go: up one dir, main page]

Skip to content

Commit a3d9a94

Browse files
committed
Adds description as a read-only attribute of WorkbookItem
1 parent a6cc77d commit a3d9a94

File tree

4 files changed

+20
-9
lines changed

4 files changed

+20
-9
lines changed

tableauserverclient/models/workbook_item.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ def __init__(self, project_id, name=None, show_tabs=False):
2222
self._updated_at = None
2323
self._views = None
2424
self.name = name
25+
self._description = None
2526
self.owner_id = None
2627
self.project_id = project_id
2728
self.show_tabs = show_tabs
@@ -52,6 +53,10 @@ def content_url(self):
5253
def created_at(self):
5354
return self._created_at
5455

56+
@property
57+
def description(self):
58+
return self._description
59+
5560
@property
5661
def id(self):
5762
return self._id
@@ -145,17 +150,17 @@ def _parse_common_tags(self, workbook_xml, ns):
145150
if not isinstance(workbook_xml, ET.Element):
146151
workbook_xml = ET.fromstring(workbook_xml).find('.//t:workbook', namespaces=ns)
147152
if workbook_xml is not None:
148-
(_, _, _, _, updated_at, _, show_tabs,
153+
(_, _, _, _, description, updated_at, _, show_tabs,
149154
project_id, project_name, owner_id, _, _,
150155
materialized_views_config) = self._parse_element(workbook_xml, ns)
151156

152-
self._set_values(None, None, None, None, updated_at,
157+
self._set_values(None, None, None, None, description, updated_at,
153158
None, show_tabs, project_id, project_name, owner_id, None, None,
154159
materialized_views_config)
155160

156161
return self
157162

158-
def _set_values(self, id, name, content_url, created_at, updated_at,
163+
def _set_values(self, id, name, content_url, created_at, description, updated_at,
159164
size, show_tabs, project_id, project_name, owner_id, tags, views,
160165
materialized_views_config):
161166
if id is not None:
@@ -166,6 +171,8 @@ def _set_values(self, id, name, content_url, created_at, updated_at,
166171
self._content_url = content_url
167172
if created_at:
168173
self._created_at = created_at
174+
if description:
175+
self._description = description
169176
if updated_at:
170177
self._updated_at = updated_at
171178
if size:
@@ -192,12 +199,12 @@ def from_response(cls, resp, ns):
192199
parsed_response = ET.fromstring(resp)
193200
all_workbook_xml = parsed_response.findall('.//t:workbook', namespaces=ns)
194201
for workbook_xml in all_workbook_xml:
195-
(id, name, content_url, created_at, updated_at, size, show_tabs,
202+
(id, name, content_url, created_at, description, updated_at, size, show_tabs,
196203
project_id, project_name, owner_id, tags, views,
197204
materialized_views_config) = cls._parse_element(workbook_xml, ns)
198205

199206
workbook_item = cls(project_id)
200-
workbook_item._set_values(id, name, content_url, created_at, updated_at,
207+
workbook_item._set_values(id, name, content_url, created_at, description, updated_at,
201208
size, show_tabs, None, project_name, owner_id, tags, views,
202209
materialized_views_config)
203210
all_workbook_items.append(workbook_item)
@@ -209,6 +216,7 @@ def _parse_element(workbook_xml, ns):
209216
name = workbook_xml.get('name', None)
210217
content_url = workbook_xml.get('contentUrl', None)
211218
created_at = parse_datetime(workbook_xml.get('createdAt', None))
219+
description = workbook_xml.get('description', None)
212220
updated_at = parse_datetime(workbook_xml.get('updatedAt', None))
213221

214222
size = workbook_xml.get('size', None)
@@ -245,7 +253,7 @@ def _parse_element(workbook_xml, ns):
245253
if materialized_views_elem is not None:
246254
materialized_views_config = parse_materialized_views_config(materialized_views_elem)
247255

248-
return id, name, content_url, created_at, updated_at, size, show_tabs,\
256+
return id, name, content_url, created_at, description, updated_at, size, show_tabs,\
249257
project_id, project_name, owner_id, tags, views, materialized_views_config
250258

251259

test/assets/workbook_get.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
<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.3.xsd">
33
<pagination pageNumber="1" pageSize="100" totalAvailable="2" />
44
<workbooks>
5-
<workbook id="6d13b0ca-043d-4d42-8c9d-3f3313ea3a00" name="Superstore" contentUrl="Superstore" showTabs="false" size="1" createdAt="2016-08-03T20:34:04Z" updatedAt="2016-08-04T17:56:41Z">
5+
<workbook id="6d13b0ca-043d-4d42-8c9d-3f3313ea3a00" name="Superstore" description="description for Superstore" contentUrl="Superstore" showTabs="false" size="1" createdAt="2016-08-03T20:34:04Z" updatedAt="2016-08-04T17:56:41Z">
66
<project id="ee8c6e70-43b6-11e6-af4f-f7b0d8e20760" name="default" />
77
<owner id="5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" />
88
<tags />
99
</workbook>
10-
<workbook id="3cc6cd06-89ce-4fdc-b935-5294135d6d42" name="SafariSample" contentUrl="SafariSample" showTabs="false" size="26" createdAt="2016-07-26T20:34:56Z" updatedAt="2016-07-26T20:35:05Z">
10+
<workbook id="3cc6cd06-89ce-4fdc-b935-5294135d6d42" name="SafariSample" description="description for SafariSample" contentUrl="SafariSample" showTabs="false" size="26" createdAt="2016-07-26T20:34:56Z" updatedAt="2016-07-26T20:35:05Z">
1111
<project id="ee8c6e70-43b6-11e6-af4f-f7b0d8e20760" name="default" />
1212
<owner id="5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" />
1313
<tags>

test/assets/workbook_get_by_id.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version='1.0' encoding='UTF-8'?>
22
<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.3.xsd">
3-
<workbook id="3cc6cd06-89ce-4fdc-b935-5294135d6d42" name="SafariSample" contentUrl="SafariSample" showTabs="false" size="26" createdAt="2016-07-26T20:34:56Z" updatedAt="2016-07-26T20:35:05Z">
3+
<workbook id="3cc6cd06-89ce-4fdc-b935-5294135d6d42" name="SafariSample" description="description for SafariSample" contentUrl="SafariSample" showTabs="false" size="26" createdAt="2016-07-26T20:34:56Z" updatedAt="2016-07-26T20:35:05Z">
44
<project id="ee8c6e70-43b6-11e6-af4f-f7b0d8e20760" name="default" />
55
<owner id="5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" />
66
<tags>

test/test_workbook.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ def test_get(self):
5555
self.assertEqual(False, all_workbooks[0].show_tabs)
5656
self.assertEqual(1, all_workbooks[0].size)
5757
self.assertEqual('2016-08-03T20:34:04Z', format_datetime(all_workbooks[0].created_at))
58+
self.assertEqual('description for Superstore', all_workbooks[0].description)
5859
self.assertEqual('2016-08-04T17:56:41Z', format_datetime(all_workbooks[0].updated_at))
5960
self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', all_workbooks[0].project_id)
6061
self.assertEqual('default', all_workbooks[0].project_name)
@@ -66,6 +67,7 @@ def test_get(self):
6667
self.assertEqual(False, all_workbooks[1].show_tabs)
6768
self.assertEqual(26, all_workbooks[1].size)
6869
self.assertEqual('2016-07-26T20:34:56Z', format_datetime(all_workbooks[1].created_at))
70+
self.assertEqual('description for SafariSample', all_workbooks[1].description)
6971
self.assertEqual('2016-07-26T20:35:05Z', format_datetime(all_workbooks[1].updated_at))
7072
self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', all_workbooks[1].project_id)
7173
self.assertEqual('default', all_workbooks[1].project_name)
@@ -99,6 +101,7 @@ def test_get_by_id(self):
99101
self.assertEqual(False, single_workbook.show_tabs)
100102
self.assertEqual(26, single_workbook.size)
101103
self.assertEqual('2016-07-26T20:34:56Z', format_datetime(single_workbook.created_at))
104+
self.assertEqual('description for SafariSample', single_workbook.description)
102105
self.assertEqual('2016-07-26T20:35:05Z', format_datetime(single_workbook.updated_at))
103106
self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', single_workbook.project_id)
104107
self.assertEqual('default', single_workbook.project_name)

0 commit comments

Comments
 (0)
0