Skip to content

Commit 4895b72

Browse files
committed
Version guard the py3.11 attributes
1 parent 2a2844d commit 4895b72

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/_pytest/_code/code.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -215,17 +215,26 @@ def get_python_framesummary(self) -> traceback.FrameSummary:
215215
return stack_summary[0]
216216

217217
@property
218-
def end_lineno(self) -> int:
219-
return self.get_python_framesummary().end_lineno - 1
218+
def end_lineno_relative(self) -> int | None:
219+
if sys.version_info < (3, 11):
220+
return None
221+
frame_summary = self.get_python_framesummary()
222+
if frame_summary.end_lineno is None:
223+
return None
224+
return frame_summary.end_lineno - 1 - self.frame.code.firstlineno
220225

221226
@property
222227
def colno(self) -> int | None:
223228
"""Starting byte offset of the expression in the traceback entry."""
229+
if sys.version_info < (3, 11):
230+
return None
224231
return self.get_python_framesummary().colno
225232

226233
@property
227234
def end_colno(self) -> int | None:
228235
"""Ending byte offset of the expression in the traceback entry."""
236+
if sys.version_info < (3, 11):
237+
return None
229238
return self.get_python_framesummary().end_colno
230239

231240
@property
@@ -1023,8 +1032,8 @@ def repr_traceback_entry(
10231032
line_index = 0
10241033
end_line_index, colno, end_colno = None, None, None
10251034
else:
1026-
line_index = entry.lineno - entry.getfirstlinesource()
1027-
end_line_index = entry.end_lineno - entry.getfirstlinesource()
1035+
line_index = entry.relline
1036+
end_line_index = entry.end_lineno_relative
10281037
colno = entry.colno
10291038
end_colno = entry.end_colno
10301039
short = style == "short"

0 commit comments

Comments
 (0)