Fixed #27035 -- Eased changing settings.DEBUG for DiscoverRunner.

This commit is contained in:
Chris Jerdonek 2016-08-09 01:40:40 -07:00 committed by Tim Graham
parent ac1975b18b
commit a3a5ef4d0e
4 changed files with 20 additions and 4 deletions

View File

@ -360,7 +360,7 @@ class DiscoverRunner(object):
def __init__(self, pattern=None, top_level=None, verbosity=1, def __init__(self, pattern=None, top_level=None, verbosity=1,
interactive=True, failfast=False, keepdb=False, interactive=True, failfast=False, keepdb=False,
reverse=False, debug_sql=False, parallel=0, reverse=False, debug_mode=False, debug_sql=False, parallel=0,
tags=None, exclude_tags=None, **kwargs): tags=None, exclude_tags=None, **kwargs):
self.pattern = pattern self.pattern = pattern
@ -370,6 +370,7 @@ class DiscoverRunner(object):
self.failfast = failfast self.failfast = failfast
self.keepdb = keepdb self.keepdb = keepdb
self.reverse = reverse self.reverse = reverse
self.debug_mode = debug_mode
self.debug_sql = debug_sql self.debug_sql = debug_sql
self.parallel = parallel self.parallel = parallel
self.tags = set(tags or []) self.tags = set(tags or [])
@ -413,7 +414,7 @@ class DiscoverRunner(object):
def setup_test_environment(self, **kwargs): def setup_test_environment(self, **kwargs):
setup_test_environment() setup_test_environment()
settings.DEBUG = False settings.DEBUG = self.debug_mode
unittest.installHandler() unittest.installHandler()
def build_suite(self, test_labels=None, extra_tests=None, **kwargs): def build_suite(self, test_labels=None, extra_tests=None, **kwargs):

View File

@ -259,6 +259,10 @@ Tests
* Added :meth:`.DiscoverRunner.get_test_runner_kwargs` to allow customizing the * Added :meth:`.DiscoverRunner.get_test_runner_kwargs` to allow customizing the
keyword arguments passed to the test runner. keyword arguments passed to the test runner.
* Added the ``debug_mode`` keyword argument to
:class:`~django.test.runner.DiscoverRunner` to make it easier to customize
the :setting:`DEBUG` setting when running tests.
URLs URLs
~~~~ ~~~~

View File

@ -427,7 +427,7 @@ behavior. This class defines the ``run_tests()`` entry point, plus a
selection of other methods that are used to by ``run_tests()`` to set up, selection of other methods that are used to by ``run_tests()`` to set up,
execute and tear down the test suite. execute and tear down the test suite.
.. class:: DiscoverRunner(pattern='test*.py', top_level=None, verbosity=1, interactive=True, failfast=False, keepdb=False, reverse=False, debug_sql=False, **kwargs) .. class:: DiscoverRunner(pattern='test*.py', top_level=None, verbosity=1, interactive=True, failfast=False, keepdb=False, reverse=False, debug_mode=False, debug_sql=False, **kwargs)
``DiscoverRunner`` will search for tests in any file matching ``pattern``. ``DiscoverRunner`` will search for tests in any file matching ``pattern``.
@ -458,6 +458,9 @@ execute and tear down the test suite.
and have side effects. :ref:`Grouping by test class <order-of-tests>` is and have side effects. :ref:`Grouping by test class <order-of-tests>` is
preserved when using this option. preserved when using this option.
``debug_mode`` specifies what the :setting:`DEBUG` setting should be
set to prior to running tests.
If ``debug_sql`` is ``True``, failing test cases will output SQL queries If ``debug_sql`` is ``True``, failing test cases will output SQL queries
logged to the :ref:`django.db.backends logger <django-db-logger>` as well logged to the :ref:`django.db.backends logger <django-db-logger>` as well
as the traceback. If ``verbosity`` is ``2``, then queries in all tests are as the traceback. If ``verbosity`` is ``2``, then queries in all tests are
@ -473,6 +476,10 @@ execute and tear down the test suite.
custom arguments by calling ``parser.add_argument()`` inside the method, so custom arguments by calling ``parser.add_argument()`` inside the method, so
that the :djadmin:`test` command will be able to use those arguments. that the :djadmin:`test` command will be able to use those arguments.
.. versionadded:: 1.11
The ``debug_mode`` keyword argument was added.
Attributes Attributes
~~~~~~~~~~ ~~~~~~~~~~
@ -526,7 +533,7 @@ Methods
Sets up the test environment by calling Sets up the test environment by calling
:func:`~django.test.utils.setup_test_environment` and setting :func:`~django.test.utils.setup_test_environment` and setting
:setting:`DEBUG` to ``False``. :setting:`DEBUG` to ``self.debug_mode`` (defaults to ``False``).
.. method:: DiscoverRunner.build_suite(test_labels, extra_tests=None, **kwargs) .. method:: DiscoverRunner.build_suite(test_labels, extra_tests=None, **kwargs)

View File

@ -20,6 +20,10 @@ def change_cwd(directory):
class DiscoverRunnerTest(TestCase): class DiscoverRunnerTest(TestCase):
def test_init_debug_mode(self):
runner = DiscoverRunner()
self.assertFalse(runner.debug_mode)
def test_dotted_test_module(self): def test_dotted_test_module(self):
count = DiscoverRunner().build_suite( count = DiscoverRunner().build_suite(
["test_discovery_sample.tests_sample"], ["test_discovery_sample.tests_sample"],