diff --git a/Lib/subprocess.py b/Lib/subprocess.py index 760b2a9ac53..ae033d47229 100644 --- a/Lib/subprocess.py +++ b/Lib/subprocess.py @@ -853,7 +853,7 @@ class Popen(object): startupinfo.dwFlags |= _subprocess.STARTF_USESHOWWINDOW startupinfo.wShowWindow = _subprocess.SW_HIDE comspec = os.environ.get("COMSPEC", "cmd.exe") - args = comspec + " /c " + '"%s"' % args + args = comspec + " /c " + args if (_subprocess.GetVersion() >= 0x80000000 or os.path.basename(comspec).lower() == "command.com"): # Win9x, or using command.com on NT. We need to diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py index c4bef9e9b05..95da1071501 100644 --- a/Lib/test/test_subprocess.py +++ b/Lib/test/test_subprocess.py @@ -1015,7 +1015,6 @@ class Win32ProcessTestCase(BaseTestCase): self._kill_process('terminate') - # The module says: # "NB This only works (and is only relevant) for UNIX." # @@ -1042,46 +1041,6 @@ class CommandTests(unittest.TestCase): if dir is not None: os.rmdir(dir) -class CommandsWithSpaces (BaseTestCase): - - def setUp(self): - super().setUp() - f, fname = mkstemp(".py", "te st") - self.fname = fname.lower () - os.write(f, b"import sys;" - b"sys.stdout.write('%d %s' % (len(sys.argv), [a.lower () for a in sys.argv]))" - ) - os.close(f) - - def tearDown(self): - os.remove(self.fname) - super().tearDown() - - def with_spaces(self, *args, **kwargs): - kwargs['stdout'] = subprocess.PIPE - p = subprocess.Popen(*args, **kwargs) - self.assertEqual( - p.stdout.read ().decode("mbcs"), - "2 [%r, 'ab cd']" % self.fname - ) - - def test_shell_string_with_spaces(self): - # call() function with string argument with spaces on Windows - self.with_spaces('"%s" "%s"' % (self.fname, "ab cd"), shell=1) - - def test_shell_sequence_with_spaces(self): - # call() function with sequence argument with spaces on Windows - self.with_spaces([self.fname, "ab cd"], shell=1) - - def test_noshell_string_with_spaces(self): - # call() function with string argument with spaces on Windows - self.with_spaces('"%s" "%s" "%s"' % (sys.executable, self.fname, - "ab cd")) - - def test_noshell_sequence_with_spaces(self): - # call() function with sequence argument with spaces on Windows - self.with_spaces([sys.executable, self.fname, "ab cd"]) - @unittest.skipUnless(getattr(subprocess, '_has_poll', False), "poll system call not supported") @@ -1134,7 +1093,6 @@ def test_main(): Win32ProcessTestCase, ProcessTestCasePOSIXPurePython, CommandTests, - CommandsWithSpaces, ProcessTestCaseNoPoll, HelperFunctionTests)