Skip to content
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
12 changes: 12 additions & 0 deletions tableauserverclient/models/datasource_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ def __init__(self, project_id: Optional[str] = None, name: Optional[str] = None)
self._initial_tags: Set = set()
self._project_name: Optional[str] = None
self._revisions = None
self._size: Optional[int] = None
self._updated_at = None
self._use_remote_query_agent = None
self._webpage_url = None
Expand Down Expand Up @@ -182,6 +183,10 @@ def revisions(self) -> List[RevisionItem]:
raise UnpopulatedPropertyError(error)
return self._revisions()

@property
def size(self) -> Optional[int]:
return self._size

def _set_connections(self, connections):
self._connections = connections

Expand Down Expand Up @@ -217,6 +222,7 @@ def _parse_common_elements(self, datasource_xml, ns):
updated_at,
use_remote_query_agent,
webpage_url,
size,
) = self._parse_element(datasource_xml, ns)
self._set_values(
ask_data_enablement,
Expand All @@ -237,6 +243,7 @@ def _parse_common_elements(self, datasource_xml, ns):
updated_at,
use_remote_query_agent,
webpage_url,
size,
)
return self

Expand All @@ -260,6 +267,7 @@ def _set_values(
updated_at,
use_remote_query_agent,
webpage_url,
size,
):
if ask_data_enablement is not None:
self._ask_data_enablement = ask_data_enablement
Expand Down Expand Up @@ -297,6 +305,8 @@ def _set_values(
self._use_remote_query_agent = str(use_remote_query_agent).lower() == "true"
if webpage_url:
self._webpage_url = webpage_url
if size is not None:
self._size = int(size)

@classmethod
def from_response(cls, resp: str, ns: Dict) -> List["DatasourceItem"]:
Expand Down Expand Up @@ -330,6 +340,7 @@ def _parse_element(datasource_xml: ET.Element, ns: Dict) -> Tuple:
has_extracts = datasource_xml.get("hasExtracts", None)
use_remote_query_agent = datasource_xml.get("useRemoteQueryAgent", None)
webpage_url = datasource_xml.get("webpageUrl", None)
size = datasource_xml.get("size", None)

tags = None
tags_elem = datasource_xml.find(".//t:tags", namespaces=ns)
Expand Down Expand Up @@ -372,4 +383,5 @@ def _parse_element(datasource_xml: ET.Element, ns: Dict) -> Tuple:
updated_at,
use_remote_query_agent,
webpage_url,
size,
)
6 changes: 3 additions & 3 deletions test/assets/datasource_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" />
<datasources>
<datasource id="e76a1461-3b1d-4588-bf1b-17551a879ad9" name="SampleDS" contentUrl="SampleDS" description="SampleDsDescription" type="dataengine" createdAt="2016-08-11T21:22:40Z" updatedAt="2016-08-11T21:34:17Z" encryptExtracts="false" hasExtracts="true" useRemoteQueryAgent="false" webpageUrl="https://web.com">
<datasource id="e76a1461-3b1d-4588-bf1b-17551a879ad9" name="SampleDS" size="4096" contentUrl="SampleDS" description="SampleDsDescription" type="dataengine" createdAt="2016-08-11T21:22:40Z" updatedAt="2016-08-11T21:34:17Z" encryptExtracts="false" hasExtracts="true" useRemoteQueryAgent="false" webpageUrl="https://web.com">
<project id="ee8c6e70-43b6-11e6-af4f-f7b0d8e20760" name="default" />
<owner id="5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" />
<tags />
</datasource>
<datasource id="9dbd2263-16b5-46e1-9c43-a76bb8ab65fb" name="Sample datasource" description="description Sample" contentUrl="Sampledatasource" type="dataengine" createdAt="2016-08-04T21:31:55Z" updatedAt="2016-08-04T21:31:55Z" encryptExtracts="true" hasExtracts="false" useRemoteQueryAgent="true" webpageUrl="https://page.com">
<datasource id="9dbd2263-16b5-46e1-9c43-a76bb8ab65fb" name="Sample datasource" description="description Sample" size="10240" contentUrl="Sampledatasource" type="dataengine" createdAt="2016-08-04T21:31:55Z" updatedAt="2016-08-04T21:31:55Z" encryptExtracts="true" hasExtracts="false" useRemoteQueryAgent="true" webpageUrl="https://page.com">
<project id="ee8c6e70-43b6-11e6-af4f-f7b0d8e20760" name="default" />
<owner id="5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" />
<tags>
Expand All @@ -17,4 +17,4 @@
</tags>
</datasource>
</datasources>
</tsResponse>
</tsResponse>
2 changes: 2 additions & 0 deletions test/test_datasource.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ def test_get(self) -> None:
self.assertEqual("dataengine", all_datasources[0].datasource_type)
self.assertEqual("SampleDsDescription", all_datasources[0].description)
self.assertEqual("SampleDS", all_datasources[0].content_url)
self.assertEqual(4096, all_datasources[0].size)
self.assertEqual("2016-08-11T21:22:40Z", format_datetime(all_datasources[0].created_at))
self.assertEqual("2016-08-11T21:34:17Z", format_datetime(all_datasources[0].updated_at))
self.assertEqual("default", all_datasources[0].project_name)
Expand All @@ -67,6 +68,7 @@ def test_get(self) -> None:
self.assertEqual("dataengine", all_datasources[1].datasource_type)
self.assertEqual("description Sample", all_datasources[1].description)
self.assertEqual("Sampledatasource", all_datasources[1].content_url)
self.assertEqual(10240, all_datasources[1].size)
self.assertEqual("2016-08-04T21:31:55Z", format_datetime(all_datasources[1].created_at))
self.assertEqual("2016-08-04T21:31:55Z", format_datetime(all_datasources[1].updated_at))
self.assertEqual("default", all_datasources[1].project_name)
Expand Down