Make test_runpy re-entrant.
diff --git a/Lib/test/test_runpy.py b/Lib/test/test_runpy.py
index 3a5a709..7076df7 100644
--- a/Lib/test/test_runpy.py
+++ b/Lib/test/test_runpy.py
@@ -4,7 +4,7 @@
import os.path
import sys
import tempfile
-from test.test_support import verbose, run_unittest
+from test.test_support import verbose, run_unittest, forget
from runpy import _run_module_code, run_module
# Set up the test code and expected results
@@ -156,6 +156,7 @@
def _check_module(self, depth):
pkg_dir, mod_fname, mod_name = (
self._make_pkg("x=1\n", depth))
+ forget(mod_name)
try:
if verbose: print "Running from source:", mod_name
d1 = run_module(mod_name) # Read from source
diff --git a/Misc/NEWS b/Misc/NEWS
index a04b2bf..228256e 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -832,6 +832,10 @@
Tests
-----
+- Make test_runpy reentrant by fixing _check_module to clear out any module
+ being tested. Was causing an error by __import__ doing a reload on the
+ second run and thus suppressing bytecode recreation.
+
- Capture socket connection resets and timeouts in test_socket_ssl and
test_urllib2net and raise test.test_support.ResourceDenied.