Prevented --parallel from crashing on Windows.

Since --parallel is documented not to work on Windows, it's better to
ignore it and run without parallelization than to crash. For example
this could simplify cross-platform test scripts.
This commit is contained in:
Aymeric Augustin 2015-09-12 20:58:26 +02:00
parent 64d7a553e1
commit 2425f6fda0
2 changed files with 6 additions and 4 deletions

View File

@ -211,6 +211,11 @@ def default_test_processes():
"""
Default number of test processes when using the --parallel option.
"""
# The current implementation of the parallel test runner requires
# multiprocessing to start subprocesses with fork().
# On Python 3.4+: if multiprocessing.get_start_method() != 'fork':
if not hasattr(os, 'fork'):
return 1
try:
return int(os.environ['DJANGO_TEST_PROCESSES'])
except KeyError:

View File

@ -236,11 +236,8 @@ def teardown(state):
def actual_test_processes(parallel):
if parallel == 0:
# On Python 3.4+: if multiprocessing.get_start_method() != 'fork':
if not hasattr(os, 'fork'):
return 1
# This doesn't work before django.setup() on some databases.
elif all(conn.features.can_clone_databases for conn in connections.all()):
if all(conn.features.can_clone_databases for conn in connections.all()):
return default_test_processes()
else:
return 1