MCPcopy Index your code
hub / github.com/RustPython/RustPython / check_dump_traceback

Method check_dump_traceback

Lib/test/test_faulthandler.py:486–530  ·  view source on GitHub ↗

Explicitly call dump_traceback() function and check its output. Raise an error if the output doesn't match the expected format.

(self, *, filename=None, fd=None)

Source from the content-addressed store, hash-verified

484 self.assertEqual(output.rstrip(), b"True")
485
486 def check_dump_traceback(self, *, filename=None, fd=None):
487 """
488 Explicitly call dump_traceback() function and check its output.
489 Raise an error if the output doesn't match the expected format.
490 """
491 code = """
492 import faulthandler
493
494 filename = {filename!r}
495 fd = {fd}
496
497 def funcB():
498 if filename:
499 with open(filename, "wb") as fp:
500 faulthandler.dump_traceback(fp, all_threads=False)
501 elif fd is not None:
502 faulthandler.dump_traceback(fd,
503 all_threads=False)
504 else:
505 faulthandler.dump_traceback(all_threads=False)
506
507 def funcA():
508 funcB()
509
510 funcA()
511 """
512 code = code.format(
513 filename=filename,
514 fd=fd,
515 )
516 if filename:
517 lineno = 9
518 elif fd is not None:
519 lineno = 11
520 else:
521 lineno = 14
522 expected = [
523 f'{STACK_HEADER_STR}',
524 ' File "<string>", line %s in funcB' % lineno,
525 ' File "<string>", line 17 in funcA',
526 ' File "<string>", line 19 in <module>'
527 ]
528 trace, exitcode = self.get_output(code, filename, fd)
529 self.assertEqual(trace, expected)
530 self.assertEqual(exitcode, 0)
531
532 def test_dump_traceback(self):
533 self.check_dump_traceback()

Callers 3

test_dump_tracebackMethod · 0.95

Calls 3

get_outputMethod · 0.95
formatMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected