def test_reset_name(self): # If reset_name is true then module.__name__ = name, else leave it be. odd_name = 'not your typical name' created_module = types.ModuleType(self.module_name) created_module.__name__ = odd_name sys.modules[self.module_name] = created_module with util.module_to_load(self.module_name) as module: self.assertEqual(module.__name__, self.module_name) created_module.__name__ = odd_name with util.module_to_load(self.module_name, reset_name=False) as module: self.assertEqual(module.__name__, odd_name)
def test_new_module(self): # Test a new module is created, inserted into sys.modules, has # __initializing__ set to True after entering the context manager, # and __initializing__ set to False after exiting. with util.module_to_load(self.module_name) as module: self.assertIn(self.module_name, sys.modules) self.assertIs(sys.modules[self.module_name], module) self.assertTrue(module.__initializing__) self.assertFalse(module.__initializing__)
def test_new_module_failed(self): # Test the module is removed from sys.modules. try: with util.module_to_load(self.module_name) as module: self.assertIn(self.module_name, sys.modules) raise exception except Exception: self.assertNotIn(self.module_name, sys.modules) else: self.fail('importlib.util.module_to_load swallowed an exception')
def test_reload_failed(self): # Test that the module was left in sys.modules. created_module = types.ModuleType(self.module_name) sys.modules[self.module_name] = created_module try: with util.module_to_load(self.module_name) as module: raise Exception except Exception: self.assertIn(self.module_name, sys.modules) else: self.fail('importlib.util.module_to_load swallowed an exception')
def test_reload(self): # Test that the same module is in sys.modules. created_module = types.ModuleType(self.module_name) sys.modules[self.module_name] = created_module with util.module_to_load(self.module_name) as module: self.assertIs(module, created_module)