gh-107963: Fix set_forkserver_preload to check the type of given list (GH-107965)
(cherry picked from commit
6515ec3d3d5acd3d0b99c88794bdec09f0831e5b)
gh-107963: Fix set_forkserver_preload to check the type of given list
Co-authored-by: Dong-hee Na <donghee.na@python.org>
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
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
--- /dev/null
+Fix :func:`multiprocessing.set_forkserver_preload` to check the given list
+of modules names. Patch by Dong-hee Na.