40 def __init__(self, failure_mode=False, error_mode=False, skip_teardown_mode=False):
50 self.
fatalfatal =
True
56 self.
errorerror =
True
59 teardown_allowed = property
72 self.
exitexit = exit
if exit
is not None else parent.exit
91 if error
and not isinstance(error, PassExecution):
94 self.
failurefailure.setup_skipped = msg
100 self.
failurefailure.setup = msg
105 if error
and not isinstance(error, PassExecution):
108 self.
failurefailure.teardown_skipped = msg
114 self.
failurefailure.teardown = msg
124 teardown_allowed = property
156 raise NotImplementedError
164 def __init__(self, parent=None, exit_on_failure=False, exit_on_error=False,
165 skip_teardown_on_exit=False):
167 exit =
Exit(exit_on_failure, exit_on_error, skip_teardown_on_exit)
178 def __init__(self, parent, test, skip_on_failure=None, rpa=False):
185 if error
is not None:
197 self.
failurefailure.test = message
202 self.
failurefailure.test_skipped = message
205 skip_on_failure_after_tag_changes = property
215 return (self.
_test_test.tags.robot(
'skip-on-failure')
221 "{Test} failed but skip-on-failure mode was active and it was marked "
222 "skipped.\n\nOriginal failure:\n%s" % msg, rpa=self.
_rpa_rpa_rpa
230 setup_message = NotImplemented
231 setup_skipped_message = NotImplemented
232 teardown_skipped_message = NotImplemented
233 teardown_message = NotImplemented
234 also_teardown_message = NotImplemented
248 if self.
failurefailure.setup_skipped:
254 return self.
failurefailure.test_skipped
or self.
failurefailure.test
or ''
257 if message.startswith(
'*HTML*'):
258 prefix =
'*HTML* ' + prefix
259 message = message[6:].lstrip()
260 return prefix % message
263 if not (self.
failurefailure.teardown
or self.
failurefailure.teardown_skipped):
266 if self.
failurefailure.teardown:
274 teardown = self.
failurefailure.teardown
or self.
failurefailure.teardown_skipped
275 if teardown.startswith(
'*HTML*'):
276 teardown = teardown[6:].lstrip()
277 if not message.startswith(
'*HTML*'):
279 elif message.startswith(
'*HTML*'):
281 if self.
failurefailure.teardown:
283 return self.also_teardown_skip_message % (teardown, message)
287 setup_message =
'Setup failed:\n%s'
288 teardown_message =
'Teardown failed:\n%s'
289 setup_skipped_message =
'%s'
290 teardown_skipped_message =
'%s'
291 also_teardown_message =
'%s\n\nAlso teardown failed:\n%s'
292 also_teardown_skip_message =
'Skipped in teardown:\n%s\n\nEarlier message:\n%s'
293 exit_on_fatal_message =
'Test execution stopped due to a fatal error.'
294 exit_on_failure_message = \
295 'Failure occurred and exit-on-failure mode is in use.'
296 exit_on_error_message =
'Error occurred and exit-on-error mode is in use.'
299 _Message.__init__(self, status)
306 message = super().message
309 if self.
exitexit.failure:
311 if self.
exitexit.fatal:
313 if self.
exitexit.error:
319 setup_message =
'Suite setup failed:\n%s'
320 setup_skipped_message =
'Skipped in suite setup:\n%s'
321 teardown_skipped_message =
'Skipped in suite teardown:\n%s'
322 teardown_message =
'Suite teardown failed:\n%s'
323 also_teardown_message =
'%s\n\nAlso suite teardown failed:\n%s'
324 also_teardown_skip_message =
'Skipped in suite teardown:\n%s\n\nEarlier message:\n%s'
328 setup_message =
'Parent suite setup failed:\n%s'
329 setup_skipped_message =
'Skipped in parent suite setup:\n%s'
330 teardown_skipped_message =
'Skipped in parent suite teardown:\n%s'
331 teardown_message =
'Parent suite teardown failed:\n%s'
332 also_teardown_message =
'%s\n\nAlso parent suite teardown failed:\n%s'
335 while status.parent
and status.parent.failed:
336 status = status.parent
337 SuiteMessage.__init__(self, status)
def failure_occurred(self, fatal=False)
def __init__(self, failure_mode=False, error_mode=False, skip_teardown_mode=False)
def __init__(self, status)
def __init__(self, parent=None, exit_on_failure=False, exit_on_error=False, skip_teardown_on_exit=False)
string exit_on_fatal_message
def __init__(self, status)
string exit_on_error_message
def test_skipped(self, message)
def test_failed(self, message=None, error=None)
def __init__(self, parent, test, skip_on_failure=None, rpa=False)
skip_on_failure_after_tag_changes
def _skip_on_failure(self)
def _skip_on_fail_msg(self, msg)
def _parent_message(self)
def failure_occurred(self)
def _skip_on_failure(self)
def teardown_executed(self, error=None)
def setup_executed(self, error=None)
def _skip_on_fail_msg(self, msg)
def __init__(self, parent, exit=None)
def _get_message_before_teardown(self)
def _get_message_after_teardown(self, message)
def __init__(self, status)
def _format_setup_or_teardown_message(self, prefix, message)
def _format_message_with_teardown_message(self, message)
def html_escape(text, linkify=True)
def test_or_task(str text, bool rpa)
Replace 'test' with 'task' in the given text depending on rpa.