From 1724c0c984e6406d80d8ebe3bb7b70f23c8b5f45 Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Mon, 23 Jul 2018 05:34:20 -0700 Subject: 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. (cherry picked from commit 752d4b7531093c55d6f0a5846748f981d79b29d3) Co-authored-by: Victor Stinner --- Lib/test/test_tools/test_sundry.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Lib/test/test_tools/test_sundry.py b/Lib/test/test_tools/test_sundry.py index 39e541b..00b8789 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): -- cgit v0.12