diff --git a/tableauserverclient/models/view_item.py b/tableauserverclient/models/view_item.py index c4d36a841..3dd9e065b 100644 --- a/tableauserverclient/models/view_item.py +++ b/tableauserverclient/models/view_item.py @@ -1,6 +1,7 @@ import xml.etree.ElementTree as ET from ..datetime_helpers import parse_datetime from .exceptions import UnpopulatedPropertyError +from .tag_item import TagItem class ViewItem(object): @@ -119,6 +120,7 @@ def from_xml_element(cls, parsed_response, ns, workbook_id=''): workbook_elem = view_xml.find('.//t:workbook', namespaces=ns) owner_elem = view_xml.find('.//t:owner', namespaces=ns) project_elem = view_xml.find('.//t:project', namespaces=ns) + tags_elem = view_xml.find('.//t:tags', namespaces=ns) view_item._created_at = parse_datetime(view_xml.get('createdAt', None)) view_item._updated_at = parse_datetime(view_xml.get('updatedAt', None)) view_item._id = view_xml.get('id', None) @@ -142,5 +144,10 @@ def from_xml_element(cls, parsed_response, ns, workbook_id=''): elif workbook_elem is not None: view_item._workbook_id = workbook_elem.get('id', None) + if tags_elem is not None: + tags = TagItem.from_xml_element(tags_elem, ns) + view_item.tags = tags + view_item._initial_tags = tags + all_view_items.append(view_item) return all_view_items diff --git a/test/assets/view_get.xml b/test/assets/view_get.xml index f205edf6a..283488a4b 100644 --- a/test/assets/view_get.xml +++ b/test/assets/view_get.xml @@ -6,6 +6,10 @@ + + + + diff --git a/test/test_view.py b/test/test_view.py index 213ea2538..fcf7d986c 100644 --- a/test/test_view.py +++ b/test/test_view.py @@ -42,6 +42,7 @@ def test_get(self): self.assertEqual('3cc6cd06-89ce-4fdc-b935-5294135d6d42', all_views[0].workbook_id) self.assertEqual('5de011f8-5aa9-4d5b-b991-f462c8dd6bb7', all_views[0].owner_id) self.assertEqual('5241e88d-d384-4fd7-9c2f-648b5247efc5', all_views[0].project_id) + self.assertEqual(set(['tag1', 'tag2']), all_views[0].tags) self.assertIsNone(all_views[0].created_at) self.assertIsNone(all_views[0].updated_at) self.assertIsNone(all_views[0].sheet_type)