From 5890b1613c0a348750a11239ab73a9f0075314ee Mon Sep 17 00:00:00 2001 From: Chris Jerdonek Date: Wed, 10 Aug 2016 10:46:54 -0700 Subject: [PATCH] Fixed #27008 -- Added --debug-mode option to DiscoverRunner. --- django/test/runner.py | 4 ++++ docs/ref/django-admin.txt | 7 +++++++ docs/releases/1.11.txt | 5 ++--- tests/test_runner/test_discover_runner.py | 10 ++++++++++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/django/test/runner.py b/django/test/runner.py index f0df68fe68..0a150ddbad 100644 --- a/django/test/runner.py +++ b/django/test/runner.py @@ -393,6 +393,10 @@ class DiscoverRunner(object): '-r', '--reverse', action='store_true', dest='reverse', default=False, help='Reverses test cases order.', ) + parser.add_argument( + '--debug-mode', action='store_true', dest='debug_mode', default=False, + help='Sets settings.DEBUG to True.', + ) parser.add_argument( '-d', '--debug-sql', action='store_true', dest='debug_sql', default=False, help='Prints logged SQL queries on failure.', diff --git a/docs/ref/django-admin.txt b/docs/ref/django-admin.txt index 3a0b05516e..3421478f33 100644 --- a/docs/ref/django-admin.txt +++ b/docs/ref/django-admin.txt @@ -1254,6 +1254,13 @@ Sorts test cases in the opposite execution order. This may help in debugging the side effects of tests that aren't properly isolated. :ref:`Grouping by test class ` is preserved when using this option. +.. django-admin-option:: --debug-mode + +.. versionadded:: 1.11 + +Sets the :setting:`DEBUG` setting to ``True`` prior to running tests. This may +help troubleshoot test failures. + .. django-admin-option:: --debug-sql, -d Enables :ref:`SQL logging ` for failing tests. If diff --git a/docs/releases/1.11.txt b/docs/releases/1.11.txt index 46c780eda8..07126a88b5 100644 --- a/docs/releases/1.11.txt +++ b/docs/releases/1.11.txt @@ -269,9 +269,8 @@ Tests * Added :meth:`.DiscoverRunner.get_test_runner_kwargs` to allow customizing the 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. +* Added the :option:`test --debug-mode` option to help troubleshoot test + test failures by setting the :setting:`DEBUG` setting to ``True``. URLs ~~~~ diff --git a/tests/test_runner/test_discover_runner.py b/tests/test_runner/test_discover_runner.py index 0b7e18291b..3ea563d1e6 100644 --- a/tests/test_runner/test_discover_runner.py +++ b/tests/test_runner/test_discover_runner.py @@ -1,4 +1,5 @@ import os +from argparse import ArgumentParser from contextlib import contextmanager from unittest import TestSuite, TextTestRunner, defaultTestLoader @@ -24,6 +25,15 @@ class DiscoverRunnerTest(TestCase): runner = DiscoverRunner() self.assertFalse(runner.debug_mode) + def test_add_arguments_debug_mode(self): + parser = ArgumentParser() + DiscoverRunner.add_arguments(parser) + + ns = parser.parse_args([]) + self.assertFalse(ns.debug_mode) + ns = parser.parse_args(["--debug-mode"]) + self.assertTrue(ns.debug_mode) + def test_dotted_test_module(self): count = DiscoverRunner().build_suite( ["test_discovery_sample.tests_sample"],