diff options
author | Irit Katriel <iritkatriel@yahoo.com> | 2020-12-22 19:53:09 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-22 19:53:09 (GMT) |
commit | 069560b1171eb6385121ff3b6331e8814a4e7454 (patch) | |
tree | 5dfe135ad4890fc02ace20501927d2c46902b9ba /Lib/test/test_traceback.py | |
parent | 6afb730e2a8bf0b472b4c3157bcf5b44aa7e6d56 (diff) | |
download | cpython-069560b1171eb6385121ff3b6331e8814a4e7454.zip cpython-069560b1171eb6385121ff3b6331e8814a4e7454.tar.gz cpython-069560b1171eb6385121ff3b6331e8814a4e7454.tar.bz2 |
bpo-34463: Make python tracebacks identical to C tracebacks for SyntaxErrors without a lineno (GH-23427)
Diffstat (limited to 'Lib/test/test_traceback.py')
-rw-r--r-- | Lib/test/test_traceback.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py index 5df701c..abb5762 100644 --- a/Lib/test/test_traceback.py +++ b/Lib/test/test_traceback.py @@ -687,6 +687,31 @@ class BaseExceptionReportingTests: msg = self.get_report(e).splitlines() self.assertEqual(msg[-2], ' ^') + def test_syntax_error_no_lineno(self): + # See #34463. + + # Without filename + e = SyntaxError('bad syntax') + msg = self.get_report(e).splitlines() + self.assertEqual(msg, + ['SyntaxError: bad syntax']) + e.lineno = 100 + msg = self.get_report(e).splitlines() + self.assertEqual(msg, + [' File "<string>", line 100', 'SyntaxError: bad syntax']) + + # With filename + e = SyntaxError('bad syntax') + e.filename = 'myfile.py' + + msg = self.get_report(e).splitlines() + self.assertEqual(msg, + ['SyntaxError: bad syntax (myfile.py)']) + e.lineno = 100 + msg = self.get_report(e).splitlines() + self.assertEqual(msg, + [' File "myfile.py", line 100', 'SyntaxError: bad syntax']) + def test_message_none(self): # A message that looks like "None" should not be treated specially err = self.get_report(Exception(None)) |