File tree Expand file tree Collapse file tree 3 files changed +19
-1
lines changed Expand file tree Collapse file tree 3 files changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -105,7 +105,7 @@ def reload(module):
105
105
try :
106
106
name = module .__name__
107
107
except AttributeError :
108
- raise TypeError ("reload() argument must be a module" )
108
+ raise TypeError ("reload() argument must be a module" ) from None
109
109
110
110
if sys .modules .get (name ) is not module :
111
111
raise ImportError (f"module { name } not in sys.modules" , name = name )
Original file line number Diff line number Diff line change 8
8
import sys
9
9
from test .support import import_helper
10
10
from test .support import os_helper
11
+ from test import support
12
+ import traceback
11
13
import types
12
14
import unittest
13
15
import warnings
@@ -354,6 +356,20 @@ def test_module_missing_spec(self):
354
356
with self .assertRaises (ModuleNotFoundError ):
355
357
self .init .reload (module )
356
358
359
+ def test_reload_traceback_with_non_str (self ):
360
+ # gh-125519
361
+ with support .captured_stdout () as stdout :
362
+ try :
363
+ self .init .reload ("typing" )
364
+ except TypeError as exc :
365
+ traceback .print_exception (exc , file = stdout )
366
+ else :
367
+ self .fail ("Expected TypeError to be raised" )
368
+ printed_traceback = stdout .getvalue ()
369
+ self .assertIn ("TypeError" , printed_traceback )
370
+ self .assertNotIn ("AttributeError" , printed_traceback )
371
+ self .assertNotIn ("module.__spec__.name" , printed_traceback )
372
+
357
373
358
374
(Frozen_ReloadTests ,
359
375
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