summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_traceback.py
diff options
context:
space:
mode:
authorBrandt Bucher <brandtbucher@microsoft.com>2022-07-10 00:22:23 (GMT)
committerGitHub <noreply@github.com>2022-07-10 00:22:23 (GMT)
commit264b3ddfd561d97204ffb30be6a7d1fb0555e560 (patch)
tree7c18cb52295ed1a678fdbd1e9d0722ff70eba84c /Lib/test/test_traceback.py
parenta10cf2f6b3766f9dbbe54bdaacfb3f2ca406ea3d (diff)
downloadcpython-264b3ddfd561d97204ffb30be6a7d1fb0555e560.zip
cpython-264b3ddfd561d97204ffb30be6a7d1fb0555e560.tar.gz
cpython-264b3ddfd561d97204ffb30be6a7d1fb0555e560.tar.bz2
GH-94694: Fix column offsets for multi-line method lookups (GH-94697)
Diffstat (limited to 'Lib/test/test_traceback.py')
-rw-r--r--Lib/test/test_traceback.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py
index 722c265..72d67bf 100644
--- a/Lib/test/test_traceback.py
+++ b/Lib/test/test_traceback.py
@@ -702,6 +702,57 @@ class TracebackErrorLocationCaretTests(unittest.TestCase):
)
self.assertEqual(result_lines, expected_error.splitlines())
+ def test_multiline_method_call_a(self):
+ def f():
+ (None
+ .method
+ )()
+ actual = self.get_exception(f)
+ expected = [
+ f"Traceback (most recent call last):",
+ f" File \"{__file__}\", line {self.callable_line}, in get_exception",
+ f" callable()",
+ f" ^^^^^^^^^^",
+ f" File \"{__file__}\", line {f.__code__.co_firstlineno + 2}, in f",
+ f" .method",
+ f" ^^^^^^",
+ ]
+ self.assertEqual(actual, expected)
+
+ def test_multiline_method_call_b(self):
+ def f():
+ (None.
+ method
+ )()
+ actual = self.get_exception(f)
+ expected = [
+ f"Traceback (most recent call last):",
+ f" File \"{__file__}\", line {self.callable_line}, in get_exception",
+ f" callable()",
+ f" ^^^^^^^^^^",
+ f" File \"{__file__}\", line {f.__code__.co_firstlineno + 2}, in f",
+ f" method",
+ f" ^^^^^^",
+ ]
+ self.assertEqual(actual, expected)
+
+ def test_multiline_method_call_c(self):
+ def f():
+ (None
+ . method
+ )()
+ actual = self.get_exception(f)
+ expected = [
+ f"Traceback (most recent call last):",
+ f" File \"{__file__}\", line {self.callable_line}, in get_exception",
+ f" callable()",
+ f" ^^^^^^^^^^",
+ f" File \"{__file__}\", line {f.__code__.co_firstlineno + 2}, in f",
+ f" . method",
+ f" ^^^^^^",
+ ]
+ self.assertEqual(actual, expected)
+
@cpython_only
@requires_debug_ranges()
class CPythonTracebackErrorCaretTests(TracebackErrorLocationCaretTests):