test_import.test_module_with_large_stack(): unload the test module

Ensure that the module is unloaded to be able to run the test more than once,
and to not leak memory.
This commit is contained in:
Victor Stinner 2013-10-06 22:52:37 +02:00
parent 7c679514a5
commit ab5a58d827

View file

@ -149,16 +149,24 @@ class ImportTests(unittest.TestCase):
sys.path.append('')
importlib.invalidate_caches()
namespace = {}
try:
make_legacy_pyc(filename)
# This used to crash.
exec('import ' + module)
exec('import ' + module, None, namespace)
finally:
# Cleanup.
del sys.path[-1]
unlink(filename + 'c')
unlink(filename + 'o')
# Remove references to the module (unload the module)
namespace.clear()
try:
del sys.modules[module]
except KeyError:
pass
def test_failing_import_sticks(self):
source = TESTFN + ".py"
with open(source, "w") as f: