def test_exception(self): """Exceptions get serialized along with their traceback.""" exc_info = raise_to_exc_info(ZeroDivisionError('foo')) reason = ErrorReason.Exception(exc_info) expected_tb = ''.join(traceback.format_exception(*exc_info)) self.assertEqual(structure_reason(reason), { 'exception': "ZeroDivisionError('foo',)", 'traceback': expected_tb })
def test_exception(self): """Exceptions get serialized along with their traceback.""" exc_info = raise_to_exc_info(ZeroDivisionError('foo')) reason = ErrorReason.Exception(exc_info) expected_tb = ''.join(traceback.format_exception(*exc_info)) self.assertEqual( structure_reason(reason), {'exception': "ZeroDivisionError('foo',)", 'traceback': expected_tb} )
def test_user_message(self): """User messages get wrapped in a dictionary.""" self.assertEqual( structure_reason(ErrorReason.UserMessage('foo bar')), {'user-message': 'foo bar'})
def test_structured(self): """Structured values get unwrapped.""" self.assertEqual( structure_reason(ErrorReason.Structured({'foo': 'bar'})), {'foo': 'bar'})
def test_string(self): """String values get wrapped in a dictionary.""" self.assertEqual(structure_reason(ErrorReason.String('foo')), {'string': 'foo'})
def test_user_message(self): """User messages get wrapped in a dictionary.""" self.assertEqual(structure_reason(ErrorReason.UserMessage('foo bar')), {'user-message': 'foo bar'})