0
0
mirror of https://github.com/django/django.git synced 2024-11-21 19:09:18 +01:00

Refs #35844 -- Fixed tests for test --parallel option on Python 3.14+.

"forkserver" is the new default on POSIX systems, and Django doesn't
support parallel tests with "forkserver":

b65f2cdfa7
This commit is contained in:
Mariusz Felisiak 2024-10-24 16:41:37 +02:00 committed by GitHub
parent 2d612162d8
commit 34066d6cf3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 0 deletions

View File

@ -45,6 +45,7 @@ def change_loader_patterns(patterns):
@mock.patch.dict(os.environ, {}, clear=True) @mock.patch.dict(os.environ, {}, clear=True)
@mock.patch.object(multiprocessing, "cpu_count", return_value=12) @mock.patch.object(multiprocessing, "cpu_count", return_value=12)
# Python 3.8 on macOS defaults to 'spawn' mode. # Python 3.8 on macOS defaults to 'spawn' mode.
# Python 3.14 on POSIX systems defaults to 'forkserver' mode.
@mock.patch.object(multiprocessing, "get_start_method", return_value="fork") @mock.patch.object(multiprocessing, "get_start_method", return_value="fork")
class DiscoverRunnerParallelArgumentTests(SimpleTestCase): class DiscoverRunnerParallelArgumentTests(SimpleTestCase):
def get_parser(self): def get_parser(self):

View File

@ -506,6 +506,7 @@ class ManageCommandTests(unittest.TestCase):
@mock.patch.dict(os.environ, {}, clear=True) @mock.patch.dict(os.environ, {}, clear=True)
@mock.patch.object(multiprocessing, "cpu_count", return_value=12) @mock.patch.object(multiprocessing, "cpu_count", return_value=12)
class ManageCommandParallelTests(SimpleTestCase): class ManageCommandParallelTests(SimpleTestCase):
@mock.patch.object(multiprocessing, "get_start_method", return_value="fork")
def test_parallel_default(self, *mocked_objects): def test_parallel_default(self, *mocked_objects):
with captured_stderr() as stderr: with captured_stderr() as stderr:
call_command( call_command(
@ -515,6 +516,7 @@ class ManageCommandParallelTests(SimpleTestCase):
) )
self.assertIn("parallel=12", stderr.getvalue()) self.assertIn("parallel=12", stderr.getvalue())
@mock.patch.object(multiprocessing, "get_start_method", return_value="fork")
def test_parallel_auto(self, *mocked_objects): def test_parallel_auto(self, *mocked_objects):
with captured_stderr() as stderr: with captured_stderr() as stderr:
call_command( call_command(
@ -550,12 +552,14 @@ class ManageCommandParallelTests(SimpleTestCase):
self.assertEqual(stderr.getvalue(), "") self.assertEqual(stderr.getvalue(), "")
@mock.patch.dict(os.environ, {"DJANGO_TEST_PROCESSES": "7"}) @mock.patch.dict(os.environ, {"DJANGO_TEST_PROCESSES": "7"})
@mock.patch.object(multiprocessing, "get_start_method", return_value="fork")
def test_no_parallel_django_test_processes_env(self, *mocked_objects): def test_no_parallel_django_test_processes_env(self, *mocked_objects):
with captured_stderr() as stderr: with captured_stderr() as stderr:
call_command("test", testrunner="test_runner.tests.MockTestRunner") call_command("test", testrunner="test_runner.tests.MockTestRunner")
self.assertEqual(stderr.getvalue(), "") self.assertEqual(stderr.getvalue(), "")
@mock.patch.dict(os.environ, {"DJANGO_TEST_PROCESSES": "invalid"}) @mock.patch.dict(os.environ, {"DJANGO_TEST_PROCESSES": "invalid"})
@mock.patch.object(multiprocessing, "get_start_method", return_value="fork")
def test_django_test_processes_env_non_int(self, *mocked_objects): def test_django_test_processes_env_non_int(self, *mocked_objects):
with self.assertRaises(ValueError): with self.assertRaises(ValueError):
call_command( call_command(
@ -565,6 +569,7 @@ class ManageCommandParallelTests(SimpleTestCase):
) )
@mock.patch.dict(os.environ, {"DJANGO_TEST_PROCESSES": "7"}) @mock.patch.dict(os.environ, {"DJANGO_TEST_PROCESSES": "7"})
@mock.patch.object(multiprocessing, "get_start_method", return_value="fork")
def test_django_test_processes_parallel_default(self, *mocked_objects): def test_django_test_processes_parallel_default(self, *mocked_objects):
for parallel in ["--parallel", "--parallel=auto"]: for parallel in ["--parallel", "--parallel=auto"]:
with self.subTest(parallel=parallel): with self.subTest(parallel=parallel):