8000 Receiving warnings in schedule creation (#550) · scuml/server-client-python@a5caa7c · GitHub
[go: up one dir, main page]

Skip to content

Commit a5caa7c

Browse files
guodahChris Shin
authored and
Chris Shin
committed
Receiving warnings in schedule creation (tableau#550)
* fixing a bug due to bool(time(0,0)) is false * add warnings to schedule creation
1 parent 963d09b commit a5caa7c

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

tableauserverclient/models/schedule_item.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,10 @@ def state(self, value):
103103
def updated_at(self):
104104
return self._updated_at
105105

106+
@property
107+
def warnings(self):
108+
return self._warnings
109+
106110
def _parse_common_tags(self, schedule_xml, ns):
107111
if not isinstance(schedule_xml, ET.Element):
108112
schedule_xml = ET.fromstring(schedule_xml).find('.//t:schedule', namespaces=ns)
@@ -125,7 +129,7 @@ def _parse_common_tags(self, schedule_xml, ns):
125129
return self
126130

127131
def _set_values(self, id_, name, state, created_at, updated_at, schedule_type,
128-
next_run_at, end_schedule_at, execution_order, priority, interval_item):
132+
next_run_at, end_schedule_at, execution_order, priority, interval_item, warnings=None):
129133
if id_ is not None:
130134
self._id = id_
131135
if name:
@@ -148,6 +152,8 @@ def _set_values(self, id_, name, state, created_at, updated_at, schedule_type,
148152
self._priority = priority
149153
if interval_item:
150154
self._interval_item = interval_item
155+
if warnings:
156+
self._warnings = warnings
151157

152158
@classmethod
153159
def from_response(cls, resp, ns):
@@ -156,6 +162,11 @@ def from_response(cls, resp, ns):
156162

157163
@classmethod
158164
def from_element(cls, parsed_response, ns):
165+
all_warning_xml = parsed_response.findall('.//t:warning', namespaces=ns)
166+
warnings = list() if len(all_warning_xml) > 0 else None
167+
for warning_xml in all_warning_xml:
168+
warnings.append(warning_xml.get('message', None))
169+
159170
all_schedule_items = []
160171
all_schedule_xml = parsed_response.findall('.//t:schedule', namespaces=ns)
161172
for schedule_xml in all_schedule_xml:
@@ -174,7 +185,8 @@ def from_element(cls, parsed_response, ns):
174185
end_schedule_at=end_schedule_at,
175186
execution_order=None,
176187
priority=None,
177-
interval_item=None)
188+
interval_item=None,
189+
warnings=warnings)
178190

179191
all_schedule_items.append(schedule_item)
180192
return all_schedule_items

test/assets/schedule_create_weekly.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,8 @@
99
</intervals>
1010
</frequencyDetails>
1111
</schedule>
12+
<warnings>
13+
<warning message="warning 1"/>
14+
<warning message="warning 2"/>
15+
</warnings>
1216
</tsResponse>

test/test_schedule.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,9 @@ def test_create_weekly(self):
153153
self.assertEqual(time(9, 15), new_schedule.interval_item.start_time)
154154
self.assertEqual(("Monday", "Wednesday", "Friday"),
155155
new_schedule.interval_item.interval)
156+
self.assertEqual(2, len(new_schedule.warnings))
157+
self.assertEqual("warning 1", new_schedule.warnings[0])
158+
self.assertEqual("warning 2", new_schedule.warnings[1])
156159

157160
def test_create_monthly(self):
158161
with open(CREATE_MONTHLY_XML, "rb") as f:

0 commit comments

Comments
 (0)
0