summaryrefslogtreecommitdiff
path: root/tests/test_runner
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2021-08-04 10:49:30 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-08-19 09:18:32 +0200
commit36714be874fa9ba7c0229d97607906669615e409 (patch)
tree8ae549d0c653f9ba373e4b930e1073d355720e3f /tests/test_runner
parentc2a5735d8679c4d07ceb667cc5418f64ee372b60 (diff)
downloaddjango-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.py28
-rw-r--r--tests/test_runner/tests.py18
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):
"""