@@ -208,44 +208,38 @@ def assertMetadataNotEqual(self, e1, e2):
208
208
209
209
class TestExceptStarSplitSemantics (ExceptStarTest ):
210
210
def doSplitTestNamed (self , exc , T , match_template , rest_template ):
211
- initial_exc_info = sys .exc_info ()
212
- exc_info = match = rest = None
211
+ initial_sys_exception = sys .exception ()
212
+ sys_exception = match = rest = None
213
213
try :
214
214
try :
215
215
raise exc
216
216
except* T as e :
217
- exc_info = sys .exc_info ()
217
+ sys_exception = sys .exception ()
218
218
match = e
219
219
except BaseException as e :
220
220
rest = e
221
221
222
- if match_template :
223
- self .assertEqual (exc_info [1 ], match )
224
- else :
225
- self .assertIsNone (exc_info )
222
+ self .assertEqual (sys_exception , match )
226
223
self .assertExceptionIsLike (match , match_template )
227
224
self .assertExceptionIsLike (rest , rest_template )
228
- self .assertEqual (sys .exc_info (), initial_exc_info )
225
+ self .assertEqual (sys .exception (), initial_sys_exception )
229
226
230
227
def doSplitTestUnnamed (self , exc , T , match_template , rest_template ):
231
- initial_exc_info = sys .exc_info ()
232
- exc_info = match = rest = None
228
+ initial_sys_exception = sys .exception ()
229
+ sys_exception = match = rest = None
233
230
try :
234
231
try :
235
232
raise exc
236
233
except* T :
237
- exc_info = sys .exc_info ()
238
- match = sys .exc_info ()[1 ]
234
+ sys_exception = match = sys .exception ()
239
235
else :
240
236
if rest_template :
241
237
self .fail ("Exception not raised" )
242
238
except BaseException as e :
243
239
rest = e
244
240
self .assertExceptionIsLike (match , match_template )
245
- if match_template :
246
- self .assertEqual (exc_info [0 ], type (match_template ))
247
241
self .assertExceptionIsLike (rest , rest_template )
248
- self .assertEqual (sys .exc_info (), initial_exc_info )
242
+ self .assertEqual (sys .exception (), initial_sys_exception )
249
243
250
244
def doSplitTestInExceptHandler (self , exc , T , match_template , rest_template ):
251
245
try :
@@ -409,11 +403,11 @@ def test_multiple_matches_unnamed(self):
409
403
try :
410
404
raise ExceptionGroup ("mmu" , [OSError ("os" ), BlockingIOError ("io" )])
411
405
except* BlockingIOError :
412
- e = sys .exc_info ()[ 1 ]
406
+ e = sys .exception ()
413
407
self .assertExceptionIsLike (e ,
414
408
ExceptionGroup ("mmu" , [BlockingIOError ("io" )]))
415
409
except* OSError :
416
- e = sys .exc_info ()[ 1 ]
410
+ e = sys .exception ()
417
411
self .assertExceptionIsLike (e ,
418
412
ExceptionGroup ("mmu" , [OSError ("os" )]))
419
413
else :
@@ -434,7 +428,7 @@ def test_first_match_wins_unnamed(self):
434
428
try :
435
429
raise ExceptionGroup ("fstu" , [BlockingIOError ("io" )])
436
430
except* OSError :
437
- e = sys .exc_info ()[ 1 ]
431
+ e = sys .exception ()
438
432
self .assertExceptionIsLike (e ,
439
433
ExceptionGroup ("fstu" , [BlockingIOError ("io" )]))
440
434
except* BlockingIOError :
@@ -452,7 +446,7 @@ def test_nested_except_stars(self):
452
446
pass
453
447
else :
454
448
self .fail ("Exception not raised" )
455
- e = sys .exc_info ()[ 1 ]
449
+ e = sys .exception ()
456
450
self .assertExceptionIsLike (e ,
457
451
ExceptionGroup ("n" , [BlockingIOError ("io" )]))
458
452
else :
@@ -766,7 +760,7 @@ def test_raise_unnamed(self):
766
760
try :
767
761
raise orig
768
762
except* OSError :
769
- e = sys .exc_info ()[ 1 ]
763
+ e = sys .exception ()
770
764
raise TypeError (3 ) from e
771
765
except ExceptionGroup as e :
772
766
exc = e
@@ -821,7 +815,7 @@ def test_raise_handle_all_raise_one_unnamed(self):
821
815
try :
822
816
raise orig
823
817
except* (TypeError , ValueError ) as e :
824
- e = sys .exc_info ()[ 1 ]
818
+ e = sys .exception ()
825
819
raise SyntaxError (3 ) from e
826
820
except ExceptionGroup as e :
827
821
exc = e
@@ -882,10 +876,10 @@ def test_raise_handle_all_raise_two_unnamed(self):
882
876
try :
883
877
raise orig
884
878
except* TypeError :
885
- e = sys .exc_info ()[ 1 ]
879
+ e = sys .exception ()
886
880
raise SyntaxError (3 ) from e
887
881
except* ValueError :
888
- e = sys .exc_info ()[ 1 ]
882
+ e = sys .exception ()
889
883
raise SyntaxError (4 ) from e
890
884
except ExceptionGroup as e :
891
885
exc = e
@@ -982,7 +976,7 @@ def derive(self, excs):
982
976
983
977
984
978
class TestExceptStarCleanup (ExceptStarTest ):
985
- def test_exc_info_restored (self ):
979
+ def test_sys_exception_restored (self ):
986
980
try :
987
981
try :
988
982
raise ValueError (42 )
@@ -997,7 +991,7 @@ def test_exc_info_restored(self):
997
991
998
992
self .assertExceptionIsLike (exc , ZeroDivisionError ('division by zero' ))
999
993
self .assertExceptionIsLike (exc .__context__ , ValueError (42 ))
1000
- self .assertEqual (sys .exc_info (), ( None , None , None ) )
994
+ self .assertEqual (sys .exception (), None )
1001
995
1002
996
1003
997
class TestExceptStar_WeirdLeafExceptions (ExceptStarTest ):
0 commit comments