コード例 #1
0
 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)
コード例 #2
0
ファイル: test_utility.py プロジェクト: victorusu/reframe
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)
コード例 #3
0
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
コード例 #4
0
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)