Skip to content

Commit 9daf4e3

Browse files
ivan.baldinotti@digitecgalaxus.chivan.baldinotti@digitecgalaxus.ch
authored andcommitted
Adding datasource name attribute to job item
1 parent f7fd213 commit 9daf4e3

2 files changed

Lines changed: 16 additions & 0 deletions

File tree

tableauserverclient/models/job_item.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ def __init__(
3434
flow_run: Optional[FlowRunItem] = None,
3535
updated_at: Optional[datetime.datetime] = None,
3636
workbook_name: Optional[str] = None,
37+
datasource_name: Optional[str] = None,
3738
):
3839
self._id = id_
3940
self._type = job_type
@@ -49,6 +50,7 @@ def __init__(
4950
self._flow_run = flow_run
5051
self._updated_at = updated_at
5152
self._workbook_name = workbook_name
53+
self._datasource_name = datasource_name
5254

5355
@property
5456
def id(self) -> str:
@@ -123,6 +125,10 @@ def updated_at(self) -> Optional[datetime.datetime]:
123125
def workbook_name(self) -> Optional[str]:
124126
return self._workbook_name
125127

128+
@property
129+
def datasource_name(self) -> Optional[str]:
130+
return self._datasource_name
131+
126132
def __str__(self):
127133
return (
128134
"<Job#{_id} {_type} created_at({_created_at}) started_at({_started_at}) updated_at({_updated_at}) completed_at({_completed_at})"
@@ -157,6 +163,7 @@ def _parse_element(cls, element, ns):
157163
workbook_name = workbook.get("name") if workbook is not None else None
158164
datasource = element.find(".//t:datasource[@id]", namespaces=ns)
159165
datasource_id = datasource.get("id") if datasource is not None else None
166+
datasource_name = datasource.get("name") if datasource is not None else None
160167
flow_run = None
161168
updated_at = parse_datetime(element.get("updatedAt", None))
162169
for flow_job in element.findall(".//t:runFlowJobType", namespaces=ns):
@@ -180,6 +187,7 @@ def _parse_element(cls, element, ns):
180187
flow_run,
181188
updated_at,
182189
workbook_name,
190+
datasource_name,
183191
)
184192

185193

test/test_job.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,3 +128,11 @@ def test_get_job_workbook_name(self) -> None:
128128
m.get(f"{self.baseurl}/{job_id}", text=response_xml)
129129
job = self.server.jobs.get_by_id(job_id)
130130
self.assertEqual(job.workbook_name, "Superstore")
131+
132+
def test_get_job_datasource_name(self) -> None:
133+
response_xml = read_xml_asset(GET_BY_ID_FAILED_XML)
134+
job_id = "777bf7c4-421d-4b2c-a518-11b90187c545"
135+
with requests_mock.mock() as m:
136+
m.get(f"{self.baseurl}/{job_id}", text=response_xml)
137+
job = self.server.jobs.get_by_id(job_id)
138+
self.assertEqual(job.datasource_name, "World Indicators")

0 commit comments

Comments
 (0)