File tree 3 files changed +18
-1
lines changed
3 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -103,7 +103,7 @@ def reload(module):
103
103
try :
104
104
name = module .__name__
105
105
except AttributeError :
106
- raise TypeError ("reload() argument must be a module" )
106
+ raise TypeError ("reload() argument must be a module" ) from None
107
107
108
108
if sys .modules .get (name ) is not module :
109
109
raise ImportError (f"module { name } not in sys.modules" , name = name )
Original file line number Diff line number Diff line change 9
9
from test import support
10
10
from test .support import import_helper
11
11
from test .support import os_helper
12
+ import traceback
12
13
import types
13
14
import unittest
14
15
@@ -354,6 +355,20 @@ def test_module_missing_spec(self):
354
355
with self .assertRaises (ModuleNotFoundError ):
355
356
self .init .reload (module )
356
357
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
+
357
372
358
373
(Frozen_ReloadTests ,
359
374
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