From ae456496a96d49e98e53bb5e6e91e3da9b45e879 Mon Sep 17 00:00:00 2001 From: sunmy2019 <59365878+sunmy2019@users.noreply.github.com> Date: Sat, 6 May 2023 04:15:43 +0000 Subject: [PATCH 1/2] add `tearDown` and clear module cache --- .../test_importlib/extension/test_loader.py | 31 +++++++++++++------ 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/Lib/test/test_importlib/extension/test_loader.py b/Lib/test/test_importlib/extension/test_loader.py index 3bf2bbdcdcc4e6..7680cd6ec8a1e2 100644 --- a/Lib/test/test_importlib/extension/test_loader.py +++ b/Lib/test/test_importlib/extension/test_loader.py @@ -113,6 +113,12 @@ def setUp(self): self.loader = self.machinery.ExtensionFileLoader( self.name, self.spec.origin) + def tearDown(self): + try: + del sys.modules[self.name] + except KeyError: + pass + def load_module(self): with warnings.catch_warnings(): warnings.simplefilter("ignore", DeprecationWarning) @@ -194,6 +200,12 @@ def setUp(self): self.loader = self.machinery.ExtensionFileLoader( self.name, self.spec.origin) + def tearDown(self): + try: + del sys.modules[self.name] + except KeyError: + pass + def load_module(self): # Load the module from the test extension. with warnings.catch_warnings(): @@ -262,15 +274,16 @@ def test_reload(self): def test_try_registration(self): # Assert that the PyState_{Find,Add,Remove}Module C API doesn't work. - module = self.load_module() - with self.subTest('PyState_FindModule'): - self.assertEqual(module.call_state_registration_func(0), None) - with self.subTest('PyState_AddModule'): - with self.assertRaises(SystemError): - module.call_state_registration_func(1) - with self.subTest('PyState_RemoveModule'): - with self.assertRaises(SystemError): - module.call_state_registration_func(2) + with util.uncache(self.name): + module = self.load_module() + with self.subTest('PyState_FindModule'): + self.assertEqual(module.call_state_registration_func(0), None) + with self.subTest('PyState_AddModule'): + with self.assertRaises(SystemError): + module.call_state_registration_func(1) + with self.subTest('PyState_RemoveModule'): + with self.assertRaises(SystemError): + module.call_state_registration_func(2) def test_load_submodule(self): # Test loading a simulated submodule. From 6fd7fec53794f1f6a7223ed0c8a692fafc1be244 Mon Sep 17 00:00:00 2001 From: sunmy2019 <59365878+sunmy2019@users.noreply.github.com> Date: Sun, 7 May 2023 05:10:48 +0000 Subject: [PATCH 2/2] remove `tearDown` --- Lib/test/test_importlib/extension/test_loader.py | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/Lib/test/test_importlib/extension/test_loader.py b/Lib/test/test_importlib/extension/test_loader.py index 7680cd6ec8a1e2..3183b05e7652fa 100644 --- a/Lib/test/test_importlib/extension/test_loader.py +++ b/Lib/test/test_importlib/extension/test_loader.py @@ -113,12 +113,6 @@ def setUp(self): self.loader = self.machinery.ExtensionFileLoader( self.name, self.spec.origin) - def tearDown(self): - try: - del sys.modules[self.name] - except KeyError: - pass - def load_module(self): with warnings.catch_warnings(): warnings.simplefilter("ignore", DeprecationWarning) @@ -200,12 +194,6 @@ def setUp(self): self.loader = self.machinery.ExtensionFileLoader( self.name, self.spec.origin) - def tearDown(self): - try: - del sys.modules[self.name] - except KeyError: - pass - def load_module(self): # Load the module from the test extension. with warnings.catch_warnings():