Skip to content

doctest fails to compare tracebacks with notes #111159

@sobolevn

Description

@sobolevn

Bug report

Minimal reproducer:

""" Module doctest  >>> raise_with_note() Traceback (most recent call last):  ... ValueError: Text Note """ def raise_with_note(): err = ValueError('Text') err.add_note('Note') raise err

Now, run it, you will get a very strange error:

» ./python.exe -m doctest ex.py ********************************************************************** File "/Users/sobolev/Desktop/cpython/ex.py", line 4, in ex Failed example: raise_with_note() Expected: Traceback (most recent call last): ... ValueError: Text Note Got: Traceback (most recent call last): File "/Users/sobolev/Desktop/cpython/Lib/doctest.py", line 1374, in __run exec(compile(example.source, filename, "single", File "<doctest ex[0]>", line 1, in <module> raise_with_note() File "/Users/sobolev/Desktop/cpython/ex.py", line 14, in raise_with_note raise err ValueError: Text Note ********************************************************************** 1 items had failures: 1 of 1 in ex ***Test Failed*** 1 failures. 

Things that do not help:

  • IGNORE_EXCEPTION_DETAIL
  • ELLIPSIS
  • Coping the whole traceback

Related to how exceptions with notes are represented in

exc_msg = traceback.format_exception_only(*exception[:2])[-1]

I am working on this issue right now :)

Refs #111157

Linked PRs

Metadata

Metadata

Assignees

Labels

stdlibStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or error

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions