gh-107963: Fix set_forkserver_preload to check the type of given list (#107965)

gh-107963: Fix set_forkserver_preload to check the type of given list
This commit is contained in:
Dong-hee Na 2023-08-15 22:58:12 +09:00 committed by GitHub
parent d66bc9e8a7
commit 6515ec3d3d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 1 deletions

View File

@ -61,7 +61,7 @@ class ForkServer(object):
def set_forkserver_preload(self, modules_names):
'''Set list of module names to try to load in forkserver process.'''
if not all(type(mod) is str for mod in self._preload_modules):
if not all(type(mod) is str for mod in modules_names):
raise TypeError('module_names must be a list of strings')
self._preload_modules = modules_names

View File

@ -5369,6 +5369,14 @@ class TestStartMethod(unittest.TestCase):
self.assertRaises(ValueError, ctx.set_start_method, None)
self.check_context(ctx)
def test_context_check_module_types(self):
try:
ctx = multiprocessing.get_context('forkserver')
except ValueError:
raise unittest.SkipTest('forkserver should be available')
with self.assertRaisesRegex(TypeError, 'module_names must be a list of strings'):
ctx.set_forkserver_preload([1, 2, 3])
def test_set_get(self):
multiprocessing.set_forkserver_preload(PRELOAD)
count = 0

View File

@ -0,0 +1,2 @@
Fix :func:`multiprocessing.set_forkserver_preload` to check the given list
of modules names. Patch by Dong-hee Na.