diff --git a/Lib/test/test_importlib/test_api.py b/Lib/test/test_importlib/test_api.py --- a/Lib/test/test_importlib/test_api.py +++ b/Lib/test/test_importlib/test_api.py @@ -410,6 +410,25 @@ self.assertEqual(loader.path, init_path) self.assertEqual(ns, expected) + def test_reload_submodule(self): + # See #19851. + name = 'spam' + subname = 'ham' + submod = '{}.{}'.format(name, subname) + with support.temp_cwd(None) as cwd: + with util.uncache(name): + with support.DirsOnSysPath(cwd): + init_path = os.path.join(cwd, name, '__init__.py') + sub_path = os.path.join(cwd, name, subname + '.py') + os.mkdir(name) + with open(init_path, 'w'): + pass + with open(sub_path, 'w') as sub_file: + sub_file.write('eggs = None') + + ham = self.init.import_module(submod) + self.init.reload(ham) + class Frozen_ReloadTests(ReloadTests, unittest.TestCase): init = frozen_init