File tree Expand file tree Collapse file tree 3 files changed +18
-1
lines changed Expand file tree Collapse file tree 3 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -105,7 +105,7 @@ def reload(module):
105105 try :
106106 name = module .__name__
107107 except AttributeError :
108- raise TypeError ("reload() argument must be a module" )
108+ raise TypeError ("reload() argument must be a module" ) from None
109109
110110 if sys .modules .get (name ) is not module :
111111 raise ImportError (f"module { name } not in sys.modules" , name = name )
Original file line number Diff line number Diff line change 88import sys
99from test .support import import_helper
1010from test .support import os_helper
11+ import traceback
1112import types
1213import unittest
1314import warnings
@@ -354,6 +355,20 @@ def test_module_missing_spec(self):
354355 with self .assertRaises (ModuleNotFoundError ):
355356 self .init .reload (module )
356357
358+ def test_reload_traceback_with_non_str (self ):
359+ # gh-125519
360+ with support .captured_stdout () as stdout :
361+ try :
362+ self .init .reload ("typing" )
363+ except TypeError as exc :
364+ traceback .print_exception (exc , file = stdout )
365+ else :
366+ self .fail ("Expected TypeError to be raised" )
367+ printed_traceback = stdout .getvalue ()
368+ self .assertIn ("TypeError" , printed_traceback )
369+ self .assertNotIn ("AttributeError" , printed_traceback )
370+ self .assertNotIn ("module.__spec__.name" , printed_traceback )
371+
357372
358373(Frozen_ReloadTests ,
359374 Source_ReloadTests
Original file line number Diff line number Diff line change 1+ Improve traceback if :func: `importlib.reload ` is called with an object that
2+ is not a module. Patch by Alex Waygood.
You can’t perform that action at this time.
0 commit comments