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)
Beispiel #3
0
 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)))
Beispiel #4
0
 def test_format_exception_without_stack(self):
     get_stack(self.error)[:] = []
     out = format_exception(self.error)
     self.assertEqual(out.splitlines(True), self.out_error)
Beispiel #5
0
 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)
Beispiel #6
0
 def test_get_stack_when_unattached(self):
     self.assertEqual(get_stack(self.error), [])
     self.assertFalse(get_stack(self.error) is get_stack(self.error))
Beispiel #7
0
 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)))