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
16 changes: 14 additions & 2 deletions tableauserverclient/models/schedule_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,10 @@ def state(self, value):
def updated_at(self):
return self._updated_at

@property
def warnings(self):
return self._warnings

def _parse_common_tags(self, schedule_xml, ns):
if not isinstance(schedule_xml, ET.Element):
schedule_xml = ET.fromstring(schedule_xml).find('.//t:schedule', namespaces=ns)
Expand All @@ -125,7 +129,7 @@ def _parse_common_tags(self, schedule_xml, ns):
return self

def _set_values(self, id_, name, state, created_at, updated_at, schedule_type,
next_run_at, end_schedule_at, execution_order, priority, interval_item):
next_run_at, end_schedule_at, execution_order, priority, interval_item, warnings=None):
if id_ is not None:
self._id = id_
if name:
Expand All @@ -148,6 +152,8 @@ def _set_values(self, id_, name, state, created_at, updated_at, schedule_type,
self._priority = priority
if interval_item:
self._interval_item = interval_item
if warnings:
self._warnings = warnings

@classmethod
def from_response(cls, resp, ns):
Expand All @@ -156,6 +162,11 @@ def from_response(cls, resp, ns):

@classmethod
def from_element(cls, parsed_response, ns):
all_warning_xml = parsed_response.findall('.//t:warning', namespaces=ns)
warnings = list() if len(all_warning_xml) > 0 else None
for warning_xml in all_warning_xml:
warnings.append(warning_xml.get('message', None))

all_schedule_items = []
all_schedule_xml = parsed_response.findall('.//t:schedule', namespaces=ns)
for schedule_xml in all_schedule_xml:
Expand All @@ -174,7 +185,8 @@ def from_element(cls, parsed_response, ns):
end_schedule_at=end_schedule_at,
execution_order=None,
priority=None,
interval_item=None)
interval_item=None,
warnings=warnings)

all_schedule_items.append(schedule_item)
return all_schedule_items
Expand Down
4 changes: 4 additions & 0 deletions test/assets/schedule_create_weekly.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,8 @@
</intervals>
</frequencyDetails>
</schedule>
<warnings>
<warning message="warning 1"/>
<warning message="warning 2"/>
</warnings>
</tsResponse>
3 changes: 3 additions & 0 deletions test/test_schedule.py
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,9 @@ def test_create_weekly(self):
self.assertEqual(time(9, 15), new_schedule.interval_item.start_time)
self.assertEqual(("Monday", "Wednesday", "Friday"),
new_schedule.interval_item.interval)
self.assertEqual(2, len(new_schedule.warnings))
self.assertEqual("warning 1", new_schedule.warnings[0])
self.assertEqual("warning 2", new_schedule.warnings[1])

def test_create_monthly(self):
with open(CREATE_MONTHLY_XML, "rb") as f:
Expand Down