gh-103895: Improve how invalid Exception.__notes__ are displayed (#103897)

This commit is contained in:
Carey Metcalfe 2023-05-01 01:32:04 -06:00 committed by GitHub
parent 93107aa2a4
commit 487f55d580
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 5 deletions

View file

@ -1539,11 +1539,11 @@ class BaseExceptionReportingTests:
e.__notes__ = BadThing()
notes_repr = 'bad repr'
self.assertEqual(self.get_report(e), vanilla + notes_repr)
self.assertEqual(self.get_report(e), vanilla + notes_repr + '\n')
e.__notes__ = Unprintable()
err_msg = '<__notes__ repr() failed>'
self.assertEqual(self.get_report(e), vanilla + err_msg)
self.assertEqual(self.get_report(e), vanilla + err_msg + '\n')
# non-string item in the __notes__ sequence
e.__notes__ = [BadThing(), 'Final Note']
@ -1555,6 +1555,14 @@ class BaseExceptionReportingTests:
err_msg = '<note str() failed>'
self.assertEqual(self.get_report(e), vanilla + err_msg + '\nFinal Note\n')
e.__notes__ = "please do not explode me"
err_msg = "'please do not explode me'"
self.assertEqual(self.get_report(e), vanilla + err_msg + '\n')
e.__notes__ = b"please do not show me as numbers"
err_msg = "b'please do not show me as numbers'"
self.assertEqual(self.get_report(e), vanilla + err_msg + '\n')
def test_exception_with_note_with_multiple_notes(self):
e = ValueError(42)
vanilla = self.get_report(e)