8
8
9
9
import astroid
10
10
from astroid import builder , nodes
11
- from astroid .const import IS_PYPY , PY38 , PY39_PLUS , PY310_PLUS
11
+ from astroid .const import IS_PYPY , PY38 , PY39_PLUS , PY310_PLUS , PY312_PLUS
12
12
13
13
14
14
@pytest .mark .skipif (
@@ -977,13 +977,24 @@ def test_end_lineno_string() -> None:
977
977
assert isinstance (s1 .values [0 ], nodes .Const )
978
978
assert (s1 .lineno , s1 .col_offset ) == (1 , 0 )
979
979
assert (s1 .end_lineno , s1 .end_col_offset ) == (1 , 29 )
980
- assert (s1 .values [0 ].lineno , s1 .values [0 ].col_offset ) == (1 , 0 )
981
- assert (s1 .values [0 ].end_lineno , s1 .values [0 ].end_col_offset ) == (1 , 29 )
980
+ if PY312_PLUS :
981
+ assert (s1 .values [0 ].lineno , s1 .values [0 ].col_offset ) == (1 , 2 )
982
+ assert (s1 .values [0 ].end_lineno , s1 .values [0 ].end_col_offset ) == (1 , 15 )
983
+ else :
984
+ # Bug in Python 3.11
985
+ # https://github.com/python/cpython/issues/81639
986
+ assert (s1 .values [0 ].lineno , s1 .values [0 ].col_offset ) == (1 , 0 )
987
+ assert (s1 .values [0 ].end_lineno , s1 .values [0 ].end_col_offset ) == (1 , 29 )
982
988
983
989
s2 = s1 .values [1 ]
984
990
assert isinstance (s2 , nodes .FormattedValue )
985
- assert (s2 .lineno , s2 .col_offset ) == (1 , 0 )
986
- assert (s2 .end_lineno , s2 .end_col_offset ) == (1 , 29 )
991
+ if PY312_PLUS :
992
+ assert (s2 .lineno , s2 .col_offset ) == (1 , 15 )
993
+ assert (s2 .end_lineno , s2 .end_col_offset ) == (1 , 28 )
994
+ else :
995
+ assert (s2 .lineno , s2 .col_offset ) == (1 , 0 )
996
+ assert (s2 .end_lineno , s2 .end_col_offset ) == (1 , 29 )
997
+
987
998
assert isinstance (s2 .value , nodes .Const ) # 42.1234
988
999
if PY39_PLUS :
989
1000
assert (s2 .value .lineno , s2 .value .col_offset ) == (1 , 16 )
@@ -993,22 +1004,35 @@ def test_end_lineno_string() -> None:
993
1004
# https://bugs.python.org/issue44885
994
1005
assert (s2 .value .lineno , s2 .value .col_offset ) == (1 , 1 )
995
1006
assert (s2 .value .end_lineno , s2 .value .end_col_offset ) == (1 , 8 )
996
- assert isinstance (s2 .format_spec , nodes .JoinedStr ) # '02d'
997
- assert (s2 .format_spec .lineno , s2 .format_spec .col_offset ) == (1 , 0 )
998
- assert (s2 .format_spec .end_lineno , s2 .format_spec .end_col_offset ) == (1 , 29 )
1007
+ assert isinstance (s2 .format_spec , nodes .JoinedStr ) # ':02d'
1008
+ if PY312_PLUS :
1009
+ assert (s2 .format_spec .lineno , s2 .format_spec .col_offset ) == (1 , 23 )
1010
+ assert (s2 .format_spec .end_lineno , s2 .format_spec .end_col_offset ) == (1 , 27 )
1011
+ else :
1012
+ assert (s2 .format_spec .lineno , s2 .format_spec .col_offset ) == (1 , 0 )
1013
+ assert (s2 .format_spec .end_lineno , s2 .format_spec .end_col_offset ) == (1 , 29 )
999
1014
1000
1015
s3 = ast_nodes [1 ]
1001
1016
assert isinstance (s3 , nodes .JoinedStr )
1002
1017
assert isinstance (s3 .values [0 ], nodes .Const )
1003
1018
assert (s3 .lineno , s3 .col_offset ) == (2 , 0 )
1004
1019
assert (s3 .end_lineno , s3 .end_col_offset ) == (2 , 17 )
1005
- assert (s3 .values [0 ].lineno , s3 .values [0 ].col_offset ) == (2 , 0 )
1006
- assert (s3 .values [0 ].end_lineno , s3 .values [0 ].end_col_offset ) == (2 , 17 )
1020
+ if PY312_PLUS :
1021
+ assert (s3 .values [0 ].lineno , s3 .values [0 ].col_offset ) == (2 , 2 )
1022
+ assert (s3 .values [0 ].end_lineno , s3 .values [0 ].end_col_offset ) == (2 , 15 )
1023
+ else :
1024
+ assert (s3 .values [0 ].lineno , s3 .values [0 ].col_offset ) == (2 , 0 )
1025
+ assert (s3 .values [0 ].end_lineno , s3 .values [0 ].end_col_offset ) == (2 , 17 )
1007
1026
1008
1027
s4 = s3 .values [1 ]
1009
1028
assert isinstance (s4 , nodes .FormattedValue )
1010
- assert (s4 .lineno , s4 .col_offset ) == (2 , 0 )
1011
- assert (s4 .end_lineno , s4 .end_col_offset ) == (2 , 17 )
1029
+ if PY312_PLUS :
1030
+ assert (s4 .lineno , s4 .col_offset ) == (2 , 9 )
1031
+ assert (s4 .end_lineno , s4 .end_col_offset ) == (2 , 16 )
1032
+ else :
1033
+ assert (s4 .lineno , s4 .col_offset ) == (2 , 0 )
1034
+ assert (s4 .end_lineno , s4 .end_col_offset ) == (2 , 17 )
1035
+
1012
1036
assert isinstance (s4 .value , nodes .Name ) # 'name'
1013
1037
if PY39_PLUS :
1014
1038
assert (s4 .value .lineno , s4 .value .col_offset ) == (2 , 10 )
0 commit comments