8000 Adds description as a read-only attribute of WorkbookItem by jorgeFons · Pull Request #533 · tableau/server-client-python · GitHub
[go: up one dir, main page]

Skip to content

Adds description as a read-only attribute of WorkbookItem #533

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 4, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 14 additions & 6 deletions tableauserverclient/models/workbook_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ def __init__(self, project_id, name=None, show_tabs=False):
self._updated_at = None
self._views = None
self.name = name
self._description = None
self.owner_id = None
self.project_id = project_id
self.show_tabs = show_tabs
Expand Down Expand Up @@ -52,6 +53,10 @@ def content_url(self):
def created_at(self):
return self._created_at

@property
def description(self):
return self._description

@property
def id(self):
return self._id
Expand Down Expand Up @@ -145,17 +150,17 @@ def _parse_common_tags(self, workbook_xml, ns):
if not isinstance(workbook_xml, ET.Element):
workbook_xml = ET.fromstring(workbook_xml).find('.//t:workbook', namespaces=ns)
if workbook_xml is not None:
(_, _, _, _, updated_at, _, show_tabs,
(_, _, _, _, description, updated_at, _, show_tabs,
project_id, project_name, owner_id, _, _,
materialized_views_config) = self._parse_element(workbook_xml, ns)

self._set_values(None, None, None, None, updated_at,
self._set_values(None, None, None, None, description, updated_at,
None, show_tabs, project_id, project_name, owner_id, None, None,
materialized_views_config)

return self

def _set_values(self, id, name, content_url, created_at, updated_at,
def _set_values(self, id, name, content_url, created_at, description, updated_at,
size, show_tabs, project_id, project_name, owner_id, tags, views,
materialized_views_config):
if id is not None:
Expand All @@ -166,6 +171,8 @@ def _set_values(self, id, name, content_url, created_at, updated_at,
self._content_url = content_url
if created_at:
self._created_at = created_at
if description:
self._description = description
if updated_at:
self._updated_at = updated_at
if size:
Expand All @@ -192,12 +199,12 @@ def from_response(cls, resp, ns):
parsed_response = ET.fromstring(resp)
all_workbook_xml = parsed_response.findall('.//t:workbook', namespaces=ns)
for workbook_xml in all_workbook_xml:
(id, name, content_url, created_at, updated_at, size, show_tabs,
(id, name, content_url, created_at, description, updated_at, size, show_tabs,
project_id, project_name, owner_id, tags, views,
materialized_views_config) = cls._parse_element(workbook_xml, ns)

workbook_item = cls(project_id)
workbook_item._set_values(id, name, content_url, created_at, updated_at,
workbook_item._set_values(id, name, content_url, created_at, description, updated_at,
size, show_tabs, None, project_name, owner_id, tags, views,
materialized_views_config)
all_workbook_items.append(workbook_item)
Expand All @@ -209,6 +216,7 @@ def _parse_element(workbook_xml, ns):
name = workbook_xml.get('name', None)
content_url = workbook_xml.get('contentUrl', None)
created_at = parse_datetime(workbook_xml.get('createdAt', None))
description = workbook_xml.get('description', None)
updated_at = parse_datetime(workbook_xml.get('updatedAt', None))

size = workbook_xml.get('size', None)
Expand Down Expand Up @@ -245,7 +253,7 @@ def _parse_element(workbook_xml, ns):
if materialized_views_elem is not None:
materialized_views_config = parse_materialized_views_config(materialized_views_elem)

return id, name, content_url, created_at, updated_at, size, show_tabs,\
return id, name, content_url, created_at, description, updated_at, size, show_tabs,\
project_id, project_name, owner_id, tags, views, materialized_views_config


Expand Down
4 changes: 2 additions & 2 deletions test/assets/workbook_get.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
<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">
<pagination pageNumber="1" pageSize="100" totalAvailable="2" />
<workbooks>
<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">
<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">
<project id="ee8c6e70-43b6-11e6-af4f-f7b0d8e20760" name="default" />
<owner id="5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" />
<tags />
</workbook>
<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">
<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">
<project id="ee8c6e70-43b6-11e6-af4f-f7b0d8e20760" name="default" />
<owner id="5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" />
<tags>
Expand Down
2 changes: 1 addition & 1 deletion test/assets/workbook_get_by_id.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<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">
<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">
<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">
<project id="ee8c6e70-43b6-11e6-af4f-f7b0d8e20760" name="default" />
<owner id="5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" />
<tags>
Expand Down
3 changes: 3 additions & 0 deletions test/test_workbook.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ def test_get(self):
self.assertEqual(False, all_workbooks[0].show_tabs)
self.assertEqual(1, all_workbooks[0].size)
self.assertEqual('2016-08-03T20:34:04Z', format_datetime(all_workbooks[0].created_at))
self.assertEqual('description for Superstore', all_workbooks[0].description)
self.assertEqual('2016-08-04T17:56:41Z', format_datetime(all_workbooks[0].updated_at))
self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', all_workbooks[0].project_id)
self.assertEqual('default', all_workbooks[0].project_name)
Expand All @@ -66,6 +67,7 @@ def test_get(self):
self.assertEqual(False, all_workbooks[1].show_tabs)
self.assertEqual(26, all_workbooks[1].size)
self.assertEqual('2016-07-26T20:34:56Z', format_datetime(all_workbooks[1].created_at))
self.assertEqual('description for SafariSample', all_workbooks[1].description)
self.assertEqual('2016-07-26T20:35:05Z', format_datetime(all_workbooks[1].updated_at))
self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', all_workbooks[1].project_id)
self.assertEqual('default', all_workbooks[1].project_name)
Expand Down Expand Up @@ -99,6 +101,7 @@ def test_get_by_id(self):
self.assertEqual(False, single_workbook.show_tabs)
self.assertEqual(26, single_workbook.size)
self.assertEqual('2016-07-26T20:34:56Z', format_datetime(single_workbook.created_at))
self.assertEqual('description for SafariSample', single_workbook.description)
self.assertEqual('2016-07-26T20:35:05Z', format_datetime(single_workbook.updated_at))
self.assertEqual('ee8c6e70-43b6-11e6-af4f-f7b0d8e20760', single_workbook.project_id)
self.assertEqual('default', single_workbook.project_name)
Expand Down
0