summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Jerdonek <chris.jerdonek@gmail.com>2016-08-04 10:26:21 -0700
committerTim Graham <timograham@gmail.com>2016-08-04 14:45:44 -0400
commitebed9ee8d5e4268d9393261633b2c23cffd426fc (patch)
tree565e122a461082a9606cbee01b3b80e864571434
parent967aa7f6cc720b11e38b7e0cbeffc2c95c64fa05 (diff)
Fixed #26981 -- Added DiscoverRunner.get_test_runner_kwargs().
-rw-r--r--django/test/runner.py16
-rw-r--r--docs/releases/1.11.txt3
-rw-r--r--docs/topics/testing/advanced.txt7
-rw-r--r--tests/test_runner/test_discover_runner.py3
4 files changed, 22 insertions, 7 deletions
diff --git a/django/test/runner.py b/django/test/runner.py
index cd9229606d..1e98c51df4 100644
--- a/django/test/runner.py
+++ b/django/test/runner.py
@@ -503,13 +503,17 @@ class DiscoverRunner(object):
def get_resultclass(self):
return DebugSQLTextTestResult if self.debug_sql else None
- def run_suite(self, suite, **kwargs):
- resultclass = self.get_resultclass()
- return self.test_runner(
- verbosity=self.verbosity,
+ def get_test_runner_kwargs(self):
+ return dict(
failfast=self.failfast,
- resultclass=resultclass,
- ).run(suite)
+ resultclass=self.get_resultclass(),
+ verbosity=self.verbosity,
+ )
+
+ def run_suite(self, suite, **kwargs):
+ kwargs = self.get_test_runner_kwargs()
+ runner = self.test_runner(**kwargs)
+ return runner.run(suite)
def teardown_databases(self, old_config, **kwargs):
"""
diff --git a/docs/releases/1.11.txt b/docs/releases/1.11.txt
index 3c220cc22d..cbaf1d5920 100644
--- a/docs/releases/1.11.txt
+++ b/docs/releases/1.11.txt
@@ -255,7 +255,8 @@ Templates
Tests
~~~~~
-* ...
+* Added :meth:`.DiscoverRunner.get_test_runner_kwargs` to allow customizing the
+ keyword arguments passed to the test runner.
URLs
~~~~
diff --git a/docs/topics/testing/advanced.txt b/docs/topics/testing/advanced.txt
index d69e95e5a8..8cfb82db67 100644
--- a/docs/topics/testing/advanced.txt
+++ b/docs/topics/testing/advanced.txt
@@ -568,6 +568,13 @@ Methods
Returns the result produced by the running the test suite.
+.. method:: DiscoverRunner.get_test_runner_kwargs()
+
+ .. versionadded:: 1.11
+
+ Returns the keyword arguments to instantiate the
+ ``DiscoverRunner.test_runner`` with.
+
.. method:: DiscoverRunner.teardown_databases(old_config, **kwargs)
Destroys the test databases, restoring pre-test conditions.
diff --git a/tests/test_runner/test_discover_runner.py b/tests/test_runner/test_discover_runner.py
index 37c18b2f8f..15f71ba1c1 100644
--- a/tests/test_runner/test_discover_runner.py
+++ b/tests/test_runner/test_discover_runner.py
@@ -157,6 +157,9 @@ class DiscoverRunnerTest(TestCase):
self.assertIn('test_2', suite[8].id(),
msg="Methods of unittest cases should be reversed.")
+ def test_overridable_get_test_runner_kwargs(self):
+ self.assertIsInstance(DiscoverRunner().get_test_runner_kwargs(), dict)
+
def test_overridable_test_suite(self):
self.assertEqual(DiscoverRunner().test_suite, TestSuite)