Skip to content

Commit 48debe6

Browse files
authored
Merge pull request #1397 from jorwoods/jorwoods/datasource_size
2 parents d2e9a61 + b1b3873 commit 48debe6

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

tableauserverclient/models/datasource_item.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ def __init__(self, project_id: Optional[str] = None, name: Optional[str] = None)
4747
self._initial_tags: Set = set()
4848
self._project_name: Optional[str] = None
4949
self._revisions = None
50+
self._size: Optional[int] = None
5051
self._updated_at = None
5152
self._use_remote_query_agent = None
5253
self._webpage_url = None
@@ -182,6 +183,10 @@ def revisions(self) -> List[RevisionItem]:
182183
raise UnpopulatedPropertyError(error)
183184
return self._revisions()
184185

186+
@property
187+
def size(self) -> Optional[int]:
188+
return self._size
189+
185190
def _set_connections(self, connections):
186191
self._connections = connections
187192

@@ -217,6 +222,7 @@ def _parse_common_elements(self, datasource_xml, ns):
217222
updated_at,
218223
use_remote_query_agent,
219224
webpage_url,
225+
size,
220226
) = self._parse_element(datasource_xml, ns)
221227
self._set_values(
222228
ask_data_enablement,
@@ -237,6 +243,7 @@ def _parse_common_elements(self, datasource_xml, ns):
237243
updated_at,
238244
use_remote_query_agent,
239245
webpage_url,
246+
size,
240247
)
241248
return self
242249

@@ -260,6 +267,7 @@ def _set_values(
260267
updated_at,
261268
use_remote_query_agent,
262269
webpage_url,
270+
size,
263271
):
264272
if ask_data_enablement is not None:
265273
self._ask_data_enablement = ask_data_enablement
@@ -297,6 +305,8 @@ def _set_values(
297305
self._use_remote_query_agent = str(use_remote_query_agent).lower() == "true"
298306
if webpage_url:
299307
self._webpage_url = webpage_url
308+
if size is not None:
309+
self._size = int(size)
300310

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

334345
tags = None
335346
tags_elem = datasource_xml.find(".//t:tags", namespaces=ns)
@@ -372,4 +383,5 @@ def _parse_element(datasource_xml: ET.Element, ns: Dict) -> Tuple:
372383
updated_at,
373384
use_remote_query_agent,
374385
webpage_url,
386+
size,
375387
)

test/assets/datasource_get.xml

Lines changed: 3 additions & 3 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
<datasources>
5-
<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">
5+
<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">
66
<project id="ee8c6e70-43b6-11e6-af4f-f7b0d8e20760" name="default" />
77
<owner id="5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" />
88
<tags />
99
</datasource>
10-
<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">
10+
<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">
1111
<project id="ee8c6e70-43b6-11e6-af4f-f7b0d8e20760" name="default" />
1212
<owner id="5de011f8-5aa9-4d5b-b991-f462c8dd6bb7" />
1313
<tags>
@@ -17,4 +17,4 @@
1717
</tags>
1818
</datasource>
1919
</datasources>
20-
</tsResponse>
20+
</tsResponse>

test/test_datasource.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ def test_get(self) -> None:
5252
self.assertEqual("dataengine", all_datasources[0].datasource_type)
5353
self.assertEqual("SampleDsDescription", all_datasources[0].description)
5454
self.assertEqual("SampleDS", all_datasources[0].content_url)
55+
self.assertEqual(4096, all_datasources[0].size)
5556
self.assertEqual("2016-08-11T21:22:40Z", format_datetime(all_datasources[0].created_at))
5657
self.assertEqual("2016-08-11T21:34:17Z", format_datetime(all_datasources[0].updated_at))
5758
self.assertEqual("default", all_datasources[0].project_name)
@@ -67,6 +68,7 @@ def test_get(self) -> None:
6768
self.assertEqual("dataengine", all_datasources[1].datasource_type)
6869
self.assertEqual("description Sample", all_datasources[1].description)
6970
self.assertEqual("Sampledatasource", all_datasources[1].content_url)
71+
self.assertEqual(10240, all_datasources[1].size)
7072
self.assertEqual("2016-08-04T21:31:55Z", format_datetime(all_datasources[1].created_at))
7173
self.assertEqual("2016-08-04T21:31:55Z", format_datetime(all_datasources[1].updated_at))
7274
self.assertEqual("default", all_datasources[1].project_name)

0 commit comments

Comments
 (0)