8000 [Tasks] Translate task type from server to TSC enum (#796) · tableau/server-client-python@fe992ee · GitHub
[go: up one dir, main page]

Skip to content

Commit fe992ee

Browse files
author
Chris Shin
authored
[Tasks] Translate task type from server to TSC enum (#796)
* Adds task type mapping to translate server response * Updates tests to match server response for task type * Fixes pycodestyle error
1 parent f64fcf9 commit fe992ee

7 files changed

+25
-10
lines changed

tableauserverclient/models/task_item.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ class Type:
99
ExtractRefresh = "extractRefresh"
1010
DataAcceleration = "dataAcceleration"
1111

12+
# This mapping is used to convert task type returned from server
13+
_TASK_TYPE_MAPPING = {'RefreshExtractTask': Type.ExtractRefresh,
14+
'MaterializeViewsTask': Type.DataAcceleration}
15+
1216
def __init__(self, id_, task_type, priority, consecutive_failed_count=0, schedule_id=None,
1317
schedule_item=None, last_run_at=None, target=None):
1418
self.id = id_
@@ -58,9 +62,18 @@ def _parse_element(cls, element, ns):
5862
if last_run_at_element is not None:
5963
last_run_at = parse_datetime(last_run_at_element.text)
6064

61-
task_type = element.get('type', None)
65+
# Server response has different names for task types
66+
task_type = cls._translate_task_type(element.get('type', None))
67+
6268
priority = int(element.get('priority', -1))
6369
consecutive_failed_count = int(element.get('consecutiveFailedCount', 0))
6470
id_ = element.get('id', None)
6571
return cls(id_, task_type, priority, consecutive_failed_count, schedule_item.id,
6672
schedule_item, last_run_at, target)
73+
74+
@staticmethod
75+
def _translate_task_type(task_type):
76+
if task_type in TaskItem._TASK_TYPE_MAPPING:
77+
return TaskItem._TASK_TYPE_MAPPING[task_type]
78+
else:
79+
return task_type

test/assets/tasks_no_workbook_or_datasource.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,17 @@
44
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.6.xsd">
55
<tasks>
66
<task>
7-
<extractRefresh id="f84901ac-72ad-4f9b-a87e-7a3500402ad6" priority="50" consecutiveFailedCount="0" type="REFRESH_EXTRACT">
7+
<extractRefresh id="f84901ac-72ad-4f9b-a87e-7a3500402ad6" priority="50" consecutiveFailedCount="0" type="RefreshExtractTask">
88
<schedule id="b60b4efd-a6f7-4599-beb3-cb677e7abac1" name="Refresh daily [23:00 - 01:00, Pacific US]" state="Active" priority="50" createdAt="2016-02-11T01:42:55Z" updatedAt="2017-07-12T06:00:06Z" type="Extract" frequency="Daily" nextRunAt="2017-07-13T06:00:00Z" />
99
</extractRefresh>
1010
</task>
1111
<task>
12-
<extractRefresh id="6e8255f1-142b-4e17-bd9a-9fe6736812a1" priority="50" consecutiveFailedCount="0" type="REFRESH_EXTRACT">
12+
<extractRefresh id="6e8255f1-142b-4e17-bd9a-9fe6736812a1" priority="50" consecutiveFailedCount="0" type="RefreshExtractTask">
1313
<schedule id="82974721-6831-4c78-875c-b7c2d5237bc2" name="Refresh daily [15:00 - 17:00, Pacific US]" state="Active" priority="50" createdAt="2016-02-11T01:39:39Z" updatedAt="2017-07-12T22:00:05Z" type="Extract" frequency="Daily" nextRunAt="2017-07-13T22:00:00Z" />
1414
</extractRefresh>
1515
</task>
1616
<task>
17-
<extractRefresh id="90cbc49a-b668-4355-9321-46f7fefd4197" priority="50" consecutiveFailedCount="0" type="REFRESH_EXTRACT">
17+
<extractRefresh id="90cbc49a-b668-4355-9321-46f7fefd4197" priority="50" consecutiveFailedCount="0" type="RefreshExtractTask">
1818
<schedule id="c39a5a41-ab5b-4661-90f6-78384916748c" name="Refresh daily [00:00 - 02:00, Pacific US]" state="Active" priority="50" createdAt="2016-02-11T01:33:51Z" updatedAt="2017-07-12T07:00:08Z" type="Extract" frequency="Daily" nextRunAt="2017-07-13T07:00:00Z" />
1919
</extractRefresh>
2020
</task>

test/assets/tasks_with_dataacceleration_task.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
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-3.8.xsd">
33
<tasks>
44
<task>
5-
<dataAcceleration id="2b217acb-194a-4291-ae90-7d5ec360395d" consecutiveFailedCount="0" type="DataAccelerationTask">
5+
<dataAcceleration id="2b217acb-194a-4291-ae90-7d5ec360395d" consecutiveFailedCount="0" type="MaterializeViewsTask">
66
<schedule id="b22190b4-6ac2-4eed-9563-4afc03444413" name="Hourly4-Schedule" state="Active" priority=" 9E7A 75" createdAt="2019-12-06T03:27:35Z" updatedAt="2019-12-09T20:30:59Z" type="DataAcceleration" frequency="Hourly" nextRunAt="2019-12-09T22:30:00Z">
77
<frequencyDetails start="02:30:00" end="23:00:00">
88
<intervals>

test/assets/tasks_with_datasource.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.6.xsd">
55
<tasks>
66
<task>
7-
<extractRefresh id="f84901ac-72ad-4f9b-a87e-7a3500402ad6" priority="50" consecutiveFailedCount="0" type="REFRESH_EXTRACT">
7+
<extractRefresh id="f84901ac-72ad-4f9b-a87e-7a3500402ad6" priority="50" consecutiveFailedCount="0" type="RefreshExtractTask">
88
<schedule id="b60b4efd-a6f7-4599-beb3-cb677e7abac1" name="Refresh daily [23:00 - 01:00, Pacific US]" state="Active" priority="50" createdAt="2016-02-11T01:42:55Z" updatedAt="2017-07-12T06:00:06Z" type="Extract" frequency="Daily" nextRunAt="2017-07-13T06:00:00Z" />
99
<datasource id="c7a9327e-1cda-4504-b026-ddb43b976d1d" />
1010
</extractRefresh>

test/assets/tasks_with_workbook.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.6.xsd">
55
<tasks>
66
<task>
7-
<extractRefresh id="f84901ac-72ad-4f9b-a87e-7a3500402ad6" priority="50" consecutiveFailedCount="0" type="REFRESH_EXTRACT">
7+
<extractRefresh id="f84901ac-72ad-4f9b-a87e-7a3500402ad6" priority="50" consecutiveFailedCount="0" type="RefreshExtractTask">
88
<schedule id="b60b4efd-a6f7-4599-beb3-cb677e7abac1" name="Refresh daily [23:00 - 01:00, Pacific US]" state="Active" priority="50" createdAt="2016-02-11T01:42:55Z" updatedAt="2017-07-12T06:00:06Z" type="Extract" frequency="Daily" nextRunAt="2017-07-13T06:00:00Z" />
99
<workbook id="c7a9327e-1cda-4504-b026-ddb43b976d1d" />
1010
</extractRefresh>

test/assets/tasks_with_workbook_and_datasource.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,19 @@
44
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tableau.com/api http://tableau.com/api/ts-api-2.6.xsd">
55
<tasks>
66
<task>
7-
<extractRefresh id="f84901ac-72ad-4f9b-a87e-7a3500402ad6" priority="50" consecutiveFailedCount="0" type="REFRESH_EXTRACT">
7+
<extractRefresh id="f84901ac-72ad-4f9b-a87e-7a3500402ad6" priority="50" consecutiveFailedCount="0" type="RefreshExtractTask">
88
<schedule id="b60b4efd-a6f7-4599-beb3-cb677e7abac1" name="Refresh daily [23:00 - 01:00, Pacific US]" state="Active" priority="50" createdAt="2016-02-11T01:42:55Z" updatedAt="2017-07-12T06:00:06Z" type="Extract" frequency="Daily" nextRunAt="2017-07-13T06:00:00Z" />
99
<workbook id="c7a9327e-1cda-4504-b026-ddb43b976d1d" />
1010
</extractRefresh>
1111
</task>
1212
<task>
13-
<extractRefresh id="6e8255f1-142b-4e17-bd9a-9fe6736812a1" priority="50" consecutiveFailedCount="0" type="REFRESH_EXTRACT">
13+
<extractRefresh id="6e8255f1-142b-4e17-bd9a-9fe6736812a1" priority="50" consecutiveFailedCount="0" type="RefreshExtractTask">
1414
<schedule id="82974721-6831-4c78-875c-b7c2d5237bc2" name="Refresh daily [15:00 - 17:00, Pacific US]" state="Active" priority="50" createdAt="2016-02-11T01:39:39Z" updatedAt="2017-07-12T22:00:05Z" type="Extract" frequency="Daily" nextRunAt="2017-07-13T22:00:00Z" />
1515
<datasource id="61334430-fb0c-43af-a5a3-8db3323644b6" />
1616
</extractRefresh>
1717
</task>
1818
<task>
19-
<extractRefresh id="90cbc49a-b668-4355-9321-46f7fefd4197" priority="50" consecutiveFailedCount="0" type="REFRESH_EXTRACT">
19+
<extractRefresh id="90cbc49a-b668-4355-9321-46f7fefd4197" priority="50" consecutiveFailedCount="0" type="RefreshExtractTask">
2020
<schedule id="c39a5a41-ab5b-4661-90f6-78384916748c" name="Refresh daily [00:00 - 02:00, Pacific US]" state="Active" priority="50" createdAt="2016-02-11T01:33:51Z" updatedAt="2017-07-12T07:00:08Z" type="Extract" frequency="Daily" nextRunAt="2017-07-13T07:00:00Z" />
2121
<workbook id="952663f4-1bb4-4fed-91f8-5967f48c533a" />
2222
</extractRefresh>

test/test_task.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ def test_get_materializeviews_tasks(self):
104104
self.assertEqual('b22190b4-6ac2-4eed-9563-4afc03444413', task.schedule_id)
105105
self.assertEqual(parse_datetime('2019-12-09T22:30:00Z'), task.schedule_item.next_run_at)
106106
self.assertEqual(parse_datetime('2019-12-09T20:45:04Z'), task.last_run_at)
107+
self.assertEqual(TSC.TaskItem.Type.DataAcceleration, task.task_type)
107108

108109
def test_delete_data_acceleration(self):
109110
with requests_mock.mock() as m:
@@ -124,6 +125,7 @@ def test_get_by_id(self):
124125
self.assertEqual('c7a9327e-1cda-4504-b026-ddb43b976d1d', task.target.id)
125126
self.assertEqual('workbook', task.target.type)
126127
self.assertEqual('b60b4efd-a6f7-4599-beb3-cb677e7abac1', task.schedule_id)
128+
self.assertEqual(TSC.TaskItem.Type.ExtractRefresh, task.task_type)
127129

128130
def test_run_now(self):
129131
task_id = 'f84901ac-72ad-4f9b-a87e-7a3500402ad6'

0 commit comments

Comments
 (0)
0