@@ -940,7 +940,6 @@ def add_module(self, modname, text):
940940 return script_helper .make_script (tempdir , modname , text )
941941
942942 def run_script (self , text , * , fails = False ):
943- excwrapper = interpreters .RunFailedError
944943 r , w = os .pipe ()
945944 try :
946945 script = dedent (f"""
@@ -956,11 +955,12 @@ class NeverError(Exception): pass
956955 raise NeverError # never raised
957956 """ ).format (dedent (text ))
958957 if fails :
959- with self . assertRaises ( excwrapper ) as caught :
960- interpreters . run_string ( self .id , script )
961- return caught . exception
958+ err = interpreters . run_string ( self . id , script )
959+ self .assertIsNot ( err , None )
960+ return err
962961 else :
963- interpreters .run_string (self .id , script )
962+ err = interpreters .run_string (self .id , script )
963+ self .assertIs (err , None )
964964 return None
965965 except :
966966 raise # re-raise
@@ -979,17 +979,18 @@ def _assert_run_failed(self, exctype, msg, script):
979979 exctype_name = exctype .__name__
980980
981981 # Run the script.
982- exc = self .run_script (script , fails = True )
982+ excinfo = self .run_script (script , fails = True )
983983
984984 # Check the wrapper exception.
985+ self .assertEqual (excinfo .type .__name__ , exctype_name )
985986 if msg is None :
986- self .assertEqual (str ( exc ) .split (':' )[0 ],
987+ self .assertEqual (excinfo . formatted .split (':' )[0 ],
987988 exctype_name )
988989 else :
989- self .assertEqual (str ( exc ) ,
990+ self .assertEqual (excinfo . formatted ,
990991 '{}: {}' .format (exctype_name , msg ))
991992
992- return exc
993+ return excinfo
993994
994995 def assert_run_failed (self , exctype , script ):
995996 self ._assert_run_failed (exctype , None , script )
0 commit comments