def test_lazy_hash_resolved_from_other_entity(self): self.build('\n' '<myhash {key: "value"}>\n' '\n' '<show "{{ myhash.noSuchKey }}">') exc = self.resolve_exc('show') self.assertTrue(isinstance(exc, KeyError)) stack = get_stack(exc) self.assertEqual(len(stack), 2) self.assertFrameEqual(stack[0], 'entity', 'myhash', 1, 8) self.assertFrameEqual(stack[1], 'entity', 'show', 3, 16)
def test_nested_expressions(self): self.build('<show "{{\n' ' 5\n' ' /\n' ' 0 \n' ' +\n' ' 1 }}">') exc = self.resolve_exc('show') self.assertTrue(isinstance(exc, ArithmeticError), msg=(type(exc), exc)) stack = get_stack(exc) self.assertEqual(len(stack), 1) self.assertFrameEqual(stack[0], 'entity', 'show', 2, 4)
def test_format_exc_info_without_stack(self): get_stack(self.error)[:] = [] out = format_exc_info(*self.exc_info) self.assertEqual(out, ''.join(traceback.format_exception(*self.exc_info)))
def test_format_exception_without_stack(self): get_stack(self.error)[:] = [] out = format_exception(self.error) self.assertEqual(out.splitlines(True), self.out_error)
def test_get_stack_error_with_source_unpacking(self): attach_stack(self.error)[:] = self.stack self.assertEqual(get_stack(ErrorWithSource(self.error, 'source')), self.stack)
def test_get_stack_when_unattached(self): self.assertEqual(get_stack(self.error), []) self.assertFalse(get_stack(self.error) is get_stack(self.error))
def test_print_exc_info_without_stack_error_with_source_unpacking(self): get_stack(self.error)[:] = [] out = format_exc_info(ErrorWithSource, ErrorWithSource(self.error, 'source'), self.exc_info[2]) self.assertEqual(out, ''.join(traceback.format_exception(*self.exc_info)))