@@ -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" ,
@@ -869,6 +871,12 @@ def test_elif_stmt_start_position(self):
869
871
self .assertEqual (elif_stmt .lineno , 3 )
870
872
self .assertEqual (elif_stmt .col_offset , 0 )
871
873
874
+ def test_elif_stmt_start_position_with_else (self ):
875
+ node = ast .parse ('if a:\n pass\n elif b:\n pass\n else:\n pass\n ' )
876
+ elif_stmt = node .body [0 ].orelse [0 ]
877
+ self .assertEqual (elif_stmt .lineno , 3 )
878
+ self .assertEqual (elif_stmt .col_offset , 0 )
879
+
872
880
def test_literal_eval (self ):
873
881
self .assertEqual (ast .literal_eval ('[1, 2, 3]' ), [1 , 2 , 3 ])
874
882
self .assertEqual (ast .literal_eval ('{"foo": 42}' ), {"foo" : 42 })
@@ -1852,6 +1860,7 @@ def main():
1852
1860
('Module' , [('While' , (1 , 0 ), ('Name' , (1 , 6 ), 'v' , ('Load' ,)), [('Pass' , (1 , 8 ))], [])], []),
1853
1861
('Module' , [('If' , (1 , 0 ), ('Name' , (1 , 3 ), 'v' , ('Load' ,)), [('Pass' , (1 , 5 ))], [])], []),
1854
1862
('Module' , [('If' , (1 , 0 ), ('Name' , (1 , 3 ), 'a' , ('Load' ,)), [('Pass' , (2 , 2 ))], [('If' , (3 , 0 ), ('Name' , (3 , 5 ), 'b' , ('Load' ,)), [('Pass' , (4 , 2 ))], [])])], []),
1863
+ ('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 ))])])], []),
1855
1864
('Module' , [('With' , (1 , 0 ), [('withitem' , ('Name' , (1 , 5 ), 'x' , ('Load' ,)), ('Name' , (1 , 10 ), 'y' , ('Store' ,)))], [('Pass' , (1 , 13 ))], None )], []),
1856
1865
('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 )], []),
1857
1866
('Module' , [('Raise' , (1 , 0 ), ('Call' , (1 , 6 ), ('Name' , (1 , 6 ), 'Exception' , ('Load' ,)), [('Constant' , (1 , 16 ), 'string' , None )], []), None )], []),
0 commit comments