diff options
author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-08-04 10:49:30 +0200 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-08-19 09:18:32 +0200 |
commit | 36714be874fa9ba7c0229d97607906669615e409 (patch) | |
tree | 8ae549d0c653f9ba373e4b930e1073d355720e3f /tests/test_runner | |
parent | c2a5735d8679c4d07ceb667cc5418f64ee372b60 (diff) | |
download | django-36714be874fa9ba7c0229d97607906669615e409.tar.gz |
Refs #31621 -- Fixed handling --parallel option in test management command and runtests.py.
Regression in ae89daf46f83a7b39d599d289624c3377bfa4ab1.
Thanks Tim Graham for the report.
Diffstat (limited to 'tests/test_runner')
-rw-r--r-- | tests/test_runner/test_discover_runner.py | 28 | ||||
-rw-r--r-- | tests/test_runner/tests.py | 18 |
2 files changed, 32 insertions, 14 deletions
diff --git a/tests/test_runner/test_discover_runner.py b/tests/test_runner/test_discover_runner.py index b73c1581e3..625de94067 100644 --- a/tests/test_runner/test_discover_runner.py +++ b/tests/test_runner/test_discover_runner.py @@ -9,7 +9,7 @@ from unittest import TestSuite, TextTestRunner, defaultTestLoader, mock from django.db import connections from django.test import SimpleTestCase -from django.test.runner import DiscoverRunner +from django.test.runner import DiscoverRunner, get_max_test_processes from django.test.utils import ( NullTimeKeeper, TimeKeeper, captured_stderr, captured_stdout, ) @@ -54,11 +54,11 @@ class DiscoverRunnerParallelArgumentTests(SimpleTestCase): def test_parallel_flag(self, *mocked_objects): result = self.get_parser().parse_args(['--parallel']) - self.assertEqual(result.parallel, 12) + self.assertEqual(result.parallel, 'auto') def test_parallel_auto(self, *mocked_objects): result = self.get_parser().parse_args(['--parallel', 'auto']) - self.assertEqual(result.parallel, 12) + self.assertEqual(result.parallel, 'auto') def test_parallel_count(self, *mocked_objects): result = self.get_parser().parse_args(['--parallel', '17']) @@ -70,20 +70,20 @@ class DiscoverRunnerParallelArgumentTests(SimpleTestCase): msg = "argument --parallel: 'unaccepted' is not an integer or the string 'auto'" self.assertIn(msg, stderr.getvalue()) - @mock.patch.dict(os.environ, {'DJANGO_TEST_PROCESSES': '7'}) - def test_parallel_env_var(self, *mocked_objects): - result = self.get_parser().parse_args([]) - self.assertEqual(result.parallel, 7) + def test_get_max_test_processes(self, *mocked_objects): + self.assertEqual(get_max_test_processes(), 12) - @mock.patch.dict(os.environ, {'DJANGO_TEST_PROCESSES': 'typo'}) - def test_parallel_env_var_non_int(self, *mocked_objects): - with self.assertRaises(ValueError): - self.get_parser().parse_args([]) + @mock.patch.dict(os.environ, {'DJANGO_TEST_PROCESSES': '7'}) + def test_get_max_test_processes_env_var(self, *mocked_objects): + self.assertEqual(get_max_test_processes(), 7) - def test_parallel_spawn(self, mocked_get_start_method, mocked_cpu_count): + def test_get_max_test_processes_spawn( + self, mocked_get_start_method, mocked_cpu_count, + ): mocked_get_start_method.return_value = 'spawn' - result = self.get_parser().parse_args(['--parallel']) - self.assertEqual(result.parallel, 1) + self.assertEqual(get_max_test_processes(), 1) + with mock.patch.dict(os.environ, {'DJANGO_TEST_PROCESSES': '7'}): + self.assertEqual(get_max_test_processes(), 1) class DiscoverRunnerTests(SimpleTestCase): diff --git a/tests/test_runner/tests.py b/tests/test_runner/tests.py index 485a35be9c..62b489abc7 100644 --- a/tests/test_runner/tests.py +++ b/tests/test_runner/tests.py @@ -434,6 +434,12 @@ class ManageCommandParallelTests(SimpleTestCase): ) self.assertEqual(stderr.getvalue(), '') + @mock.patch.dict(os.environ, {'DJANGO_TEST_PROCESSES': '7'}) + def test_no_parallel_django_test_processes_env(self, *mocked_objects): + with captured_stderr() as stderr: + call_command('test', testrunner='test_runner.tests.MockTestRunner') + self.assertEqual(stderr.getvalue(), '') + @mock.patch.dict(os.environ, {'DJANGO_TEST_PROCESSES': 'invalid'}) def test_django_test_processes_env_non_int(self, *mocked_objects): with self.assertRaises(ValueError): @@ -443,6 +449,18 @@ class ManageCommandParallelTests(SimpleTestCase): testrunner='test_runner.tests.MockTestRunner', ) + @mock.patch.dict(os.environ, {'DJANGO_TEST_PROCESSES': '7'}) + def test_django_test_processes_parallel_default(self, *mocked_objects): + for parallel in ['--parallel', '--parallel=auto']: + with self.subTest(parallel=parallel): + with captured_stderr() as stderr: + call_command( + 'test', + parallel, + testrunner='test_runner.tests.MockTestRunner', + ) + self.assertIn('parallel=7', stderr.getvalue()) + class CustomTestRunnerOptionsSettingsTests(AdminScriptTestCase): """ |