diff options
| author | Brandt Bucher <brandtbucher@microsoft.com> | 2022-07-10 00:22:23 (GMT) |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-10 00:22:23 (GMT) |
| commit | 264b3ddfd561d97204ffb30be6a7d1fb0555e560 (patch) | |
| tree | 7c18cb52295ed1a678fdbd1e9d0722ff70eba84c /Lib/test/test_traceback.py | |
| parent | a10cf2f6b3766f9dbbe54bdaacfb3f2ca406ea3d (diff) | |
| download | cpython-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.py | 51 |
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): |
