File: tracebacks.pyx

package info (click to toggle)
cython 3.0.11%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 19,092 kB
  • sloc: python: 83,539; ansic: 18,831; cpp: 1,402; xml: 1,031; javascript: 511; makefile: 403; sh: 204; sed: 11
file content (36 lines) | stat: -rw-r--r-- 776 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# tag: traceback

def foo1():
  foo2()

cdef foo2():
  foo3()

cdef int foo3() except -1:
  raise RuntimeError('my_message')

def test_traceback(cline_in_traceback=None):
  """
  >>> test_traceback()
  >>> test_traceback(True)
  >>> test_traceback(False)
  """
  if cline_in_traceback is not None:
    import cython_runtime
    cython_runtime.cline_in_traceback = cline_in_traceback
  try:
    foo1()
  except:
    import traceback
    tb_string = traceback.format_exc()
    expected = (
      'tracebacks.pyx',
      'foo1', 'foo2', 'foo3',
      'line 4', 'line 7', 'line 10',
      'my_message')
    for s in expected:
      assert s in tb_string, s
    if cline_in_traceback:
      assert 'tracebacks.c' in tb_string
    else:
      assert 'tracebacks.c' not in tb_string