54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
|
|
from vtkmodules.vtkCommonCore import vtkCommand
|
||
|
|
|
||
|
|
|
||
|
|
class vtkErrorObserver(object):
|
||
|
|
def __init__(self):
|
||
|
|
self.CallDataType = 'string0'
|
||
|
|
self.reset()
|
||
|
|
|
||
|
|
def __call__(self, caller, event, data):
|
||
|
|
if event == 'ErrorEvent':
|
||
|
|
self._error_message = data
|
||
|
|
elif event == 'WarningEvent':
|
||
|
|
self._warning_message = data
|
||
|
|
|
||
|
|
def _check(self, seen, actual, expect, what):
|
||
|
|
if seen:
|
||
|
|
if actual.find(expect) == -1:
|
||
|
|
msg = 'ERROR: %s message does not contain "%s" got \n"%s"' \
|
||
|
|
% (what, expect, self.error_message)
|
||
|
|
raise RuntimeError(msg)
|
||
|
|
else:
|
||
|
|
what = what.lower()
|
||
|
|
msg = 'ERROR: Failed to catch any %s. ' \
|
||
|
|
'Expected the %s message to contain "%s"' \
|
||
|
|
% (what, what, expect)
|
||
|
|
raise RuntimeError(msg)
|
||
|
|
self.reset()
|
||
|
|
|
||
|
|
def check_error(self, expect):
|
||
|
|
self._check(self.saw_error, self.error_message, expect, 'Error')
|
||
|
|
|
||
|
|
def check_warning(self, expect):
|
||
|
|
self._check(self.saw_warning, self.warning_message, expect, 'Warning')
|
||
|
|
|
||
|
|
def reset(self):
|
||
|
|
self._error_message = None
|
||
|
|
self._warning_message = None
|
||
|
|
|
||
|
|
@property
|
||
|
|
def saw_error(self):
|
||
|
|
return self._error_message is not None
|
||
|
|
|
||
|
|
@property
|
||
|
|
def error_message(self):
|
||
|
|
return self._error_message
|
||
|
|
|
||
|
|
@property
|
||
|
|
def saw_warning(self):
|
||
|
|
return self._warning_message is not None
|
||
|
|
|
||
|
|
@property
|
||
|
|
def warning_message(self):
|
||
|
|
return self._warning_message
|