|
import sys |
|
|
|
import joblib |
|
from joblib.test.common import with_multiprocessing |
|
from joblib.testing import check_subprocess_call |
|
|
|
|
|
def test_version(): |
|
assert hasattr(joblib, "__version__"), ( |
|
"There are no __version__ argument on the joblib module" |
|
) |
|
|
|
|
|
@with_multiprocessing |
|
def test_no_start_method_side_effect_on_import(): |
|
|
|
|
|
code = """if True: |
|
import joblib |
|
import multiprocessing as mp |
|
# The following line would raise RuntimeError if the |
|
# start_method is already set. |
|
mp.set_start_method("loky") |
|
""" |
|
check_subprocess_call([sys.executable, "-c", code]) |
|
|
|
|
|
@with_multiprocessing |
|
def test_no_semaphore_tracker_on_import(): |
|
|
|
|
|
code = """if True: |
|
import joblib |
|
from multiprocessing import semaphore_tracker |
|
# The following line would raise RuntimeError if the |
|
# start_method is already set. |
|
msg = "multiprocessing.semaphore_tracker has been spawned on import" |
|
assert semaphore_tracker._semaphore_tracker._fd is None, msg""" |
|
if sys.version_info >= (3, 8): |
|
|
|
code = code.replace("semaphore_tracker", "resource_tracker") |
|
check_subprocess_call([sys.executable, "-c", code]) |
|
|
|
|
|
@with_multiprocessing |
|
def test_no_resource_tracker_on_import(): |
|
code = """if True: |
|
import joblib |
|
from joblib.externals.loky.backend import resource_tracker |
|
# The following line would raise RuntimeError if the |
|
# start_method is already set. |
|
msg = "loky.resource_tracker has been spawned on import" |
|
assert resource_tracker._resource_tracker._fd is None, msg |
|
""" |
|
check_subprocess_call([sys.executable, "-c", code]) |
|
|