mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
bpo-46720: Add support for path-like objects to multiprocessing.set_executable for Windows (GH-31279)
This bring the API to be on a par with Unix-like systems.
This commit is contained in:
parent
f912cc0e41
commit
5576ddbbbc
5 changed files with 34 additions and 8 deletions
|
@ -20,6 +20,7 @@ import logging
|
|||
import subprocess
|
||||
import struct
|
||||
import operator
|
||||
import pathlib
|
||||
import pickle
|
||||
import weakref
|
||||
import warnings
|
||||
|
@ -256,6 +257,21 @@ class _TestProcess(BaseTestCase):
|
|||
self.assertEqual(current.ident, os.getpid())
|
||||
self.assertEqual(current.exitcode, None)
|
||||
|
||||
def test_set_executable(self):
|
||||
if self.TYPE == 'threads':
|
||||
self.skipTest(f'test not appropriate for {self.TYPE}')
|
||||
paths = [
|
||||
sys.executable, # str
|
||||
sys.executable.encode(), # bytes
|
||||
pathlib.Path(sys.executable) # os.PathLike
|
||||
]
|
||||
for path in paths:
|
||||
self.set_executable(path)
|
||||
p = self.Process()
|
||||
p.start()
|
||||
p.join()
|
||||
self.assertEqual(p.exitcode, 0)
|
||||
|
||||
def test_args_argument(self):
|
||||
# bpo-45735: Using list or tuple as *args* in constructor could
|
||||
# achieve the same effect.
|
||||
|
@ -5787,6 +5803,7 @@ class ProcessesMixin(BaseMixin):
|
|||
current_process = staticmethod(multiprocessing.current_process)
|
||||
parent_process = staticmethod(multiprocessing.parent_process)
|
||||
active_children = staticmethod(multiprocessing.active_children)
|
||||
set_executable = staticmethod(multiprocessing.set_executable)
|
||||
Pool = staticmethod(multiprocessing.Pool)
|
||||
Pipe = staticmethod(multiprocessing.Pipe)
|
||||
Queue = staticmethod(multiprocessing.Queue)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue