@@ -702,6 +702,57 @@ class A: pass
702
702
)
703
703
self .assertEqual (result_lines , expected_error .splitlines ())
704
704
705
+ def test_multiline_method_call_a (self ):
706
+ def f ():
707
+ (None
708
+ .method
709
+ )()
710
+ actual = self .get_exception (f )
711
+ expected = [
712
+ f"Traceback (most recent call last):" ,
713
+ f" File \" { __file__ } \" , line { self .callable_line } , in get_exception" ,
714
+ f" callable()" ,
715
+ f" ^^^^^^^^^^" ,
716
+ f" File \" { __file__ } \" , line { f .__code__ .co_firstlineno + 2 } , in f" ,
717
+ f" .method" ,
718
+ f" ^^^^^^" ,
719
+ ]
720
+ self .assertEqual (actual , expected )
721
+
722
+ def test_multiline_method_call_b (self ):
723
+ def f ():
724
+ (None .
725
+ method
726
+ )()
727
+ actual = self .get_exception (f )
728
+ expected = [
729
+ f"Traceback (most recent call last):" ,
730
+ f" File \" { __file__ } \" , line { self .callable_line } , in get_exception" ,
731
+ f" callable()" ,
732
+ f" ^^^^^^^^^^" ,
733
+ f" File \" { __file__ } \" , line { f .__code__ .co_firstlineno + 2 } , in f" ,
734
+ f" method" ,
735
+ f" ^^^^^^" ,
736
+ ]
737
+ self .assertEqual (actual , expected )
738
+
739
+ def test_multiline_method_call_c (self ):
740
+ def f ():
741
+ (None
742
+ . method
743
+ )()
744
+ actual = self .get_exception (f )
745
+ expected = [
746
+ f"Traceback (most recent call last):" ,
747
+ f" File \" { __file__ } \" , line { self .callable_line } , in get_exception" ,
748
+ f" callable()" ,
749
+ f" ^^^^^^^^^^" ,
750
+ f" File \" { __file__ } \" , line { f .__code__ .co_firstlineno + 2 } , in f" ,
751
+ f" . method" ,
752
+ f" ^^^^^^" ,
753
+ ]
754
+ self .assertEqual (actual , expected )
755
+
705
756
@cpython_only
706
757
@requires_debug_ranges ()
707
758
class CPythonTracebackErrorCaretTests (TracebackErrorLocationCaretTests ):
0 commit comments