summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_tools
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2018-07-23 11:17:59 (GMT)
committerGitHub <noreply@github.com>2018-07-23 11:17:59 (GMT)
commit752d4b7531093c55d6f0a5846748f981d79b29d3 (patch)
treea805141a6c6782c874656773c45941bcdab371ca /Lib/test/test_tools
parent8b96eed0dd13d9dec02421cacfa021d457ba2d80 (diff)
downloadcpython-752d4b7531093c55d6f0a5846748f981d79b29d3.zip
cpython-752d4b7531093c55d6f0a5846748f981d79b29d3.tar.gz
cpython-752d4b7531093c55d6f0a5846748f981d79b29d3.tar.bz2
bpo-25094: Fix test_tools.test_sundry() on Windows (GH-8406)
When Python is installed on Windows, python -m test test_tools failed because it tried to run Tools\scripts\2to3.py which requires an argument. Skip this script. On other platforms or on Windows but when run from source code (not installed), the script is called "2to3" instead of "2to.py" and so was already skipped. Modify also the unit test to unload all modules which have been loaded by the test.
Diffstat (limited to 'Lib/test/test_tools')
-rw-r--r--Lib/test/test_tools/test_sundry.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/Lib/test/test_tools/test_sundry.py b/Lib/test/test_tools/test_sundry.py
index 2f9db94..f5fed01 100644
--- a/Lib/test/test_tools/test_sundry.py
+++ b/Lib/test/test_tools/test_sundry.py
@@ -25,15 +25,25 @@ class TestSundryScripts(unittest.TestCase):
# scripts that use windows-only modules
windows_only = ['win_add2path']
# blacklisted for other reasons
- other = ['analyze_dxp']
+ other = ['analyze_dxp', '2to3']
skiplist = blacklist + whitelist + windows_only + other
def test_sundry(self):
- for fn in os.listdir(scriptsdir):
- name = fn[:-3]
- if fn.endswith('.py') and name not in self.skiplist:
+ old_modules = support.modules_setup()
+ try:
+ for fn in os.listdir(scriptsdir):
+ if not fn.endswith('.py'):
+ continue
+
+ name = fn[:-3]
+ if name in self.skiplist:
+ continue
+
import_tool(name)
+ finally:
+ # Unload all modules loaded in this test
+ support.modules_cleanup(*old_modules)
@unittest.skipIf(sys.platform != "win32", "Windows-only test")
def test_sundry_windows(self):