def repr_failure_tblong(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] |
for index, entry in py.builtin.enumerate(traceback): |
if entry == first: |
if item: |
self.repr_item_info(item) |
self.out.line() |
else: |
self.out.line("") |
source = self.getentrysource(entry) |
firstsourceline = entry.getfirstlinesource() |
marker_location = entry.lineno - firstsourceline |
if entry == last: |
-> self.repr_source(source, 'E', marker_location) |
self.repr_failure_explanation(excinfo, source) |
else: |
self.repr_source(source, '>', marker_location) |
self.out.line("") |
self.out.line("[%s:%d]" %(entry.path, entry.lineno+1)) |
self.repr_locals(entry.locals) |
|
|
if entry == last: |
out_err_reporter() |
self.out.sep("_") |
else: |
self.out.sep("_ ") |
if index == recursionindex: |
self.out.line("Recursion detected (same locals & position)") |
self.out.sep("!") |
break |