22 from .platform
import RERAISED_EXCEPTIONS
25 EXCLUDE_ROBOT_TRACES =
not os.getenv(
'ROBOT_INTERNAL_TRACES')
41 exclude_robot_traces=exclude_robot_traces)
42 return details.message, details.traceback
55 _generic_names = frozenset((
'AssertionError',
'Error',
'Exception',
'RuntimeError'))
57 def __init__(self, error=None, full_traceback=True,
58 exclude_robot_traces=EXCLUDE_ROBOT_TRACES):
60 error = sys.exc_info()[1]
61 if isinstance(error, RERAISED_EXCEPTIONS):
86 if isinstance(error, RobotError):
91 return ''.join(lines).rstrip()
94 tb = error.__traceback__
97 error.__traceback__ = tb
104 module = tb.tb_frame.f_globals.get(
'__name__')
105 return module
and module.startswith(
'robot.')
108 prefix =
'Traceback (most recent call last):\n'
109 empty_tb = [prefix,
' None\n']
111 if tb
or value.__context__
or value.__cause__:
112 return traceback.format_exception(etype, value, tb)
114 return empty_tb + traceback.format_exception_only(etype, value)
117 return [prefix] + traceback.format_tb(tb)
122 name =
type(error).__name__.split(
'.')[-1]
128 if message.startswith(
'*HTML*'):
129 name =
'*HTML* ' + name
130 message = message.split(
'*', 2)[-1].lstrip()
131 return '%s: %s' % (name, message)
135 or isinstance(error, RobotError)
136 or getattr(error,
'ROBOT_SUPPRESS_NAME',
False))
Object wrapping the last occurred exception.
def __init__(self, error=None, full_traceback=True, exclude_robot_traces=EXCLUDE_ROBOT_TRACES)
def _format_traceback(self, error)
def _is_robot_traceback(self, tb)
def _format_message(self, error)
def _remove_robot_traces(self, error)
def _suppress_name(self, name, error)
def _get_traceback_lines(self, etype, value, tb)
def get_error_details(full_traceback=True, exclude_robot_traces=EXCLUDE_ROBOT_TRACES)
Returns error message and details of the last occurred exception.
def get_error_message()
Returns error message of the last occurred exception.