[3.11] gh-109179: Fix traceback display for SyntaxErrors with notes (#109197) (#109283)

gh-109179: Fix traceback display for SyntaxErrors with notes (#109197)

(cherry picked from commit ecd21a629a)
This commit is contained in:
Irit Katriel 2023-09-12 10:57:28 +01:00 committed by GitHub
parent 0e2d67457b
commit 1e8696133c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 30 deletions

View file

@ -1546,27 +1546,28 @@ class BaseExceptionReportingTests:
err_msg = '<note str() failed>'
self.assertEqual(self.get_report(e), vanilla + err_msg + '\nFinal Note\n')
def test_exception_with_note_with_multiple_notes(self):
e = ValueError(42)
vanilla = self.get_report(e)
def test_exception_with_multiple_notes(self):
for e in [ValueError(42), SyntaxError('bad syntax')]:
with self.subTest(e=e):
vanilla = self.get_report(e)
e.add_note('Note 1')
e.add_note('Note 2')
e.add_note('Note 3')
e.add_note('Note 1')
e.add_note('Note 2')
e.add_note('Note 3')
self.assertEqual(
self.get_report(e),
vanilla + 'Note 1\n' + 'Note 2\n' + 'Note 3\n')
self.assertEqual(
self.get_report(e),
vanilla + 'Note 1\n' + 'Note 2\n' + 'Note 3\n')
del e.__notes__
e.add_note('Note 4')
del e.__notes__
e.add_note('Note 5')
e.add_note('Note 6')
del e.__notes__
e.add_note('Note 4')
del e.__notes__
e.add_note('Note 5')
e.add_note('Note 6')
self.assertEqual(
self.get_report(e),
vanilla + 'Note 5\n' + 'Note 6\n')
self.assertEqual(
self.get_report(e),
vanilla + 'Note 5\n' + 'Note 6\n')
def test_exception_qualname(self):
class A: