File tree Expand file tree Collapse file tree 1 file changed +74
-0
lines changed Expand file tree Collapse file tree 1 file changed +74
-0
lines changed Original file line number Diff line number Diff line change @@ -805,6 +805,80 @@ def g2(): return 1
805
805
x = g2 ()
806
806
check_syntax_error (self , "class foo:return 1" )
807
807
808
+ def test_break_in_finally (self ):
809
+ count = 0
810
+ while count < 2 :
811
+ count += 1
812
+ try :
813
+ pass
814
+ finally :
815
+ break
816
+ self .assertEqual (count , 1 )
817
+
818
+ count = 0
819
+ while count < 2 :
820
+ count += 1
821
+ try :
822
+ continue
823
+ finally :
824
+ break
825
+ self .assertEqual (count , 1 )
826
+
827
+ count = 0
828
+ while count < 2 :
829
+ count += 1
830
+ try :
831
+ 1 / 0
832
+ finally :
833
+ break
834
+ self .assertEqual (count , 1 )
835
+
836
+ for count in [0 , 1 ]:
837
+ self .assertEqual (count , 0 )
838
+ try :
839
+ pass
840
+ finally :
841
+ break
842
+ self .assertEqual (count , 0 )
843
+
844
+ for count in [0 , 1 ]:
845
+ self .assertEqual (count , 0 )
846
+ try :
847
+ continue
848
+ finally :
849
+ break
850
+ self .assertEqual (count , 0 )
851
+
852
+ for count in [0 , 1 ]:
853
+ self .assertEqual (count , 0 )
854
+ try :
855
+ 1 / 0
856
+ finally :
857
+ break
858
+ self .assertEqual (count , 0 )
859
+
860
+ def test_return_in_finally (self ):
861
+ def g1 ():
862
+ try :
863
+ pass
864
+ finally :
865
+ return 1
866
+ self .assertEqual (g1 (), 1 )
867
+
868
+ def g2 ():
869
+ try :
870
+ return 2
871
+ finally :
872
+ return 3
873
+ self .assertEqual (g2 (), 3 )
874
+
875
+ def g3 ():
876
+ try :
877
+ 1 / 0
878
+ finally :
879
+ return 4
880
+ self .assertEqual (g3 (), 4 )
881
+
808
882
def test_yield (self ):
809
883
# Allowed as standalone statement
810
884
def g (): yield 1
You can’t perform that action at this time.
0 commit comments