Commit 7b3b20ad authored by Victor Stinner's avatar Victor Stinner

Issue #8513: On UNIX, subprocess supports bytes command string.

parent 8370bb95
...@@ -1125,7 +1125,7 @@ class Popen(object): ...@@ -1125,7 +1125,7 @@ class Popen(object):
restore_signals, start_new_session): restore_signals, start_new_session):
"""Execute program (POSIX version)""" """Execute program (POSIX version)"""
if isinstance(args, str): if isinstance(args, (str, bytes)):
args = [args] args = [args]
else: else:
args = list(args) args = list(args)
......
...@@ -1059,6 +1059,11 @@ class POSIXProcessTestCase(BaseTestCase): ...@@ -1059,6 +1059,11 @@ class POSIXProcessTestCase(BaseTestCase):
exitcode = subprocess.call([abs_program, "-c", "pass"]) exitcode = subprocess.call([abs_program, "-c", "pass"])
self.assertEqual(exitcode, 0) self.assertEqual(exitcode, 0)
# absolute bytes path as a string
cmd = b"'" + abs_program + b"' -c pass"
exitcode = subprocess.call(cmd, shell=True)
self.assertEqual(exitcode, 0)
# bytes program, unicode PATH # bytes program, unicode PATH
env = os.environ.copy() env = os.environ.copy()
env["PATH"] = path env["PATH"] = path
......
...@@ -52,6 +52,8 @@ Core and Builtins ...@@ -52,6 +52,8 @@ Core and Builtins
Library Library
------- -------
- Issue #8513: On UNIX, subprocess supports bytes command string.
- Issue #10866: Add socket.sethostname(). Initial patch by Ross Lagerwall. - Issue #10866: Add socket.sethostname(). Initial patch by Ross Lagerwall.
- Issue #11140: Lock.release() now raises a RuntimeError when attempting - Issue #11140: Lock.release() now raises a RuntimeError when attempting
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment