def repr_failure_tbshort(self, item, excinfo, traceback, out_err_reporter): |
|
-> if not self.config.option.nomagic and excinfo.errisinstance(RuntimeError): |
recursionindex = traceback.recursionindex() |
else: |
recursionindex = None |
last = traceback[-1] |
first = traceback[0] |
self.out.line() |
for index, entry in py.builtin.enumerate(traceback): |
path = entry.path.basename |
firstsourceline = entry.getfirstlinesource() |
relline = entry.lineno - firstsourceline |
self.out.line(' File "%s", line %d, in %s' % ( |
path, entry.lineno+1, entry.name)) |
try: |
source = entry.getsource().lines |
except py.error.ENOENT: |
source = ["?"] |
else: |
try: |
if len(source) > 1: |
source = source[relline] |
except IndexError: |
source = [] |
if entry == last: |
if source: |
self.repr_source(source, 'E') |
self.repr_failure_explanation(excinfo, source) |
else: |
if source: |
self.repr_source(source, ' ') |
self.repr_locals(entry.locals) |
|
|
if entry == last: |
out_err_reporter() |
self.out.sep("_") |
else: |
if index == recursionindex: |
self.out.line("Recursion detected (same locals & position)") |
self.out.sep("!") |
break |