@@ -70,6 +70,8 @@ def to_tuple(t):
70
70
"if v:pass" ,
71
71
# If-Elif
72
72
"if a:\n pass\n elif b:\n pass" ,
73
+ # If-Elif-Else
74
+ "if a:\n pass\n elif b:\n pass\n else:\n pass" ,
73
75
# With
74
76
"with x as y: pass" ,
75
77
"with x as y, z as q: pass" ,
@@ -807,6 +809,12 @@ def test_elif_stmt_start_position(self):
807
809
self .assertEqual (elif_stmt .lineno , 3 )
808
810
self .assertEqual (elif_stmt .col_offset , 0 )
809
811
812
+ def test_elif_stmt_start_position_with_else (self ):
813
+ node = ast .parse ('if a:\n pass\n elif b:\n pass\n else:\n pass\n ' )
814
+ elif_stmt = node .body [0 ].orelse [0 ]
815
+ self .assertEqual (elif_stmt .lineno , 3 )
816
+ self .assertEqual (elif_stmt .col_offset , 0 )
817
+
810
818
def test_literal_eval (self ):
811
819
self .assertEqual (ast .literal_eval ('[1, 2, 3]' ), [1 , 2 , 3 ])
812
820
self .assertEqual (ast .literal_eval ('{"foo": 42}' ), {"foo" : 42 })
@@ -1790,6 +1798,7 @@ def main():
1790
1798
('Module' , [('While' , (1 , 0 ), ('Name' , (1 , 6 ), 'v' , ('Load' ,)), [('Pass' , (1 , 8 ))], [])], []),
1791
1799
('Module' , [('If' , (1 , 0 ), ('Name' , (1 , 3 ), 'v' , ('Load' ,)), [('Pass' , (1 , 5 ))], [])], []),
1792
1800
('Module' , [('If' , (1 , 0 ), ('Name' , (1 , 3 ), 'a' , ('Load' ,)), [('Pass' , (2 , 2 ))], [('If' , (3 , 0 ), ('Name' , (3 , 5 ), 'b' , ('Load' ,)), [('Pass' , (4 , 2 ))], [])])], []),
1801
+ ('Module' , [('If' , (1 , 0 ), ('Name' , (1 , 3 ), 'a' , ('Load' ,)), [('Pass' , (2 , 2 ))], [('If' , (3 , 0 ), ('Name' , (3 , 5 ), 'b' , ('Load' ,)), [('Pass' , (4 , 2 ))], [('Pass' , (6 , 2 ))])])], []),
1793
1802
('Module' , [('With' , (1 , 0 ), [('withitem' , ('Name' , (1 , 5 ), 'x' , ('Load' ,)), ('Name' , (1 , 10 ), 'y' , ('Store' ,)))], [('Pass' , (1 , 13 ))], None )], []),
1794
1803
('Module' , [('With' , (1 , 0 ), [('withitem' , ('Name' , (1 , 5 ), 'x' , ('Load' ,)), ('Name' , (1 , 10 ), 'y' , ('Store' ,))), ('withitem' , ('Name' , (1 , 13 ), 'z' , ('Load' ,)), ('Name' , (1 , 18 ), 'q' , ('Store' ,)))], [('Pass' , (1 , 21 ))], None )], []),
1795
1804
('Module' , [('Raise' , (1 , 0 ), ('Call' , (1 , 6 ), ('Name' , (1 , 6 ), 'Exception' , ('Load' ,)), [('Constant' , (1 , 16 ), 'string' , None )], []), None )], []),
0 commit comments