def test_decamelize(self): self.assertEqual('', util.decamelize('')) self.assertEqual('my_base_class', util.decamelize('MyBaseClass')) self.assertEqual('my_base_class12', util.decamelize('MyBaseClass12')) self.assertEqual('my_class_a', util.decamelize('MyClass_A')) self.assertEqual('my_class', util.decamelize('my_class')) self.assertRaises(TypeError, util.decamelize, None) self.assertRaises(TypeError, util.decamelize, 12)
def test_decamelize(): assert '' == util.decamelize('') assert 'my_base_class' == util.decamelize('MyBaseClass') assert 'my_base_class12' == util.decamelize('MyBaseClass12') assert 'my_class_a' == util.decamelize('MyClass_A') assert 'my_class' == util.decamelize('my_class') with pytest.raises(TypeError): util.decamelize(None) with pytest.raises(TypeError): util.decamelize(12)
def what(exc_type, exc_value, tb): '''A short description of the error.''' if exc_type is None: return '' reason = utility.decamelize(exc_type.__name__, ' ') # We need frame information for user type and value errors frame = user_frame(exc_type, exc_value, tb) user_type_error = isinstance(exc_value, TypeError) and frame user_value_error = isinstance(exc_value, ValueError) and frame if isinstance(exc_value, KeyboardInterrupt): reason = 'cancelled by user' elif isinstance(exc_value, AbortTaskError): reason = f'aborted due to {type(exc_value.__cause__).__name__}' elif user_type_error or user_value_error: relpath = os.path.relpath(frame.filename) source = ''.join(frame.code_context) reason += f': {relpath}:{frame.lineno}: {exc_value}\n{source}' else: if str(exc_value): reason += f': {exc_value}' return reason
def format_exception(exc_type, exc_value, tb): def format_user_frame(frame): relpath = os.path.relpath(frame.filename) return '%s:%s: %s\n%s' % (relpath, frame.lineno, exc_value, ''.join( frame.code_context)) if exc_type is None: return '' if isinstance(exc_value, AbortTaskError): return 'aborted due to %s' % type(exc_value.__cause__).__name__ if isinstance(exc_value, ReframeError): return '%s: %s' % (utility.decamelize(exc_type.__name__, ' '), exc_value) if isinstance(exc_value, ReframeFatalError): exc_str = '%s: %s' % (utility.decamelize(exc_type.__name__, ' '), exc_value) tb_str = ''.join(traceback.format_exception(exc_type, exc_value, tb)) return '%s\n%s' % (exc_str, tb_str) if isinstance(exc_value, KeyboardInterrupt): return 'cancelled by user' if isinstance(exc_value, OSError): return 'OS error: %s' % exc_value frame = user_frame(tb) if isinstance(exc_value, TypeError) and frame is not None: return 'type error: ' + format_user_frame(frame) if isinstance(exc_value, ValueError) and frame is not None: return 'value error: ' + format_user_frame(frame) exc_str = ''.join(traceback.format_exception(exc_type, exc_value, tb)) return 'unexpected error: %s\n%s' % (exc_value, exc_str)