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
805805 x = g2 ()
806806 check_syntax_error (self , "class foo:return 1" )
807807
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+
808882 def test_yield (self ):
809883 # Allowed as standalone statement
810884 def g (): yield 1
You can’t perform that action at this time.
0 commit comments