Commit 2fc19d8d authored by Russell Keith-Magee's avatar Russell Keith-Magee
Browse files

Fixed #12932 -- Added an extra argument to suite_result() in the test runner,...

Fixed #12932 -- Added an extra argument to suite_result() in the test runner, and added **kwargs as protection against future changes. Thanks to Eric Holscher for the report and patch.

This is BACKWARDS INCOMPATIBLE for anyone that has written a custom DjangoTestRunner class since it was introduced in r12255.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@12487 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent a9b2ac25
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -232,16 +232,16 @@ def reorder_suite(suite, classes):


class DjangoTestSuiteRunner(object):
    def __init__(self, verbosity=1, interactive=True, failfast=True):
    def __init__(self, verbosity=1, interactive=True, failfast=True, **kwargs):
        self.verbosity = verbosity
        self.interactive = interactive
        self.failfast = failfast

    def setup_test_environment(self):
    def setup_test_environment(self, **kwargs):
        setup_test_environment()
        settings.DEBUG = False

    def build_suite(self, test_labels, extra_tests=None):
    def build_suite(self, test_labels, extra_tests=None, **kwargs):
        suite = unittest.TestSuite()

        if test_labels:
@@ -261,7 +261,7 @@ class DjangoTestSuiteRunner(object):

        return reorder_suite(suite, (TestCase,))

    def setup_databases(self):
    def setup_databases(self, **kwargs):
        from django.db import connections
        old_names = []
        mirrors = []
@@ -278,10 +278,10 @@ class DjangoTestSuiteRunner(object):
                connection.creation.create_test_db(self.verbosity, autoclobber=not self.interactive)
        return old_names, mirrors

    def run_suite(self, suite):
    def run_suite(self, suite, **kwargs):
        return DjangoTestRunner(verbosity=self.verbosity, failfast=self.failfast).run(suite)

    def teardown_databases(self, old_config):
    def teardown_databases(self, old_config, **kwargs):
        from django.db import connections
        old_names, mirrors = old_config
        # Point all the mirrors back to the originals
@@ -291,13 +291,13 @@ class DjangoTestSuiteRunner(object):
        for connection, old_name in old_names:
            connection.creation.destroy_test_db(old_name, self.verbosity)

    def teardown_test_environment(self):
    def teardown_test_environment(self, **kwargs):
        teardown_test_environment()

    def suite_result(self, result):
    def suite_result(self, suite, result, **kwargs):
        return len(result.failures) + len(result.errors)

    def run_tests(self, test_labels, extra_tests=None):
    def run_tests(self, test_labels, extra_tests=None, **kwargs):
        """
        Run the unit tests for all the test labels in the provided list.
        Labels must be of the form:
@@ -322,7 +322,7 @@ class DjangoTestSuiteRunner(object):
        result = self.run_suite(suite)
        self.teardown_databases(old_config)
        self.teardown_test_environment()
        return self.suite_result(result)
        return self.suite_result(suite, result)

def run_tests(test_labels, verbosity=1, interactive=True, failfast=False, extra_tests=None):
    import warnings
+10 −9
Original line number Diff line number Diff line
@@ -1371,7 +1371,7 @@ set up, execute and tear down the test suite.
    write your own test runner, ensure accept and handle the ``**kwargs``
    parameter.

.. method:: DjangoTestSuiteRunner.run_tests(test_labels, extra_tests=None)
.. method:: DjangoTestSuiteRunner.run_tests(test_labels, extra_tests=None, **kwargs)

    Run the test suite.

@@ -1392,11 +1392,11 @@ set up, execute and tear down the test suite.

    This method should return the number of tests that failed.

.. method:: DjangoTestSuiteRunner.setup_test_environment()
.. method:: DjangoTestSuiteRunner.setup_test_environment(**kwargs)

    Sets up the test environment ready for testing.

.. method:: DjangoTestSuiteRunner.build_suite(test_labels, extra_tests=None)
.. method:: DjangoTestSuiteRunner.build_suite(test_labels, extra_tests=None, **kwargs)

    Constructs a test suite that matches the test labels provided.

@@ -1417,7 +1417,7 @@ set up, execute and tear down the test suite.

    Returns a ``TestSuite`` instance ready to be run.

.. method:: DjangoTestSuiteRunner.setup_databases()
.. method:: DjangoTestSuiteRunner.setup_databases(**kwargs)

    Creates the test databases.

@@ -1425,13 +1425,13 @@ set up, execute and tear down the test suite.
    that have been made. This data will be provided to the ``teardown_databases()``
    function at the conclusion of testing.

.. method:: DjangoTestSuiteRunner.run_suite(suite)
.. method:: DjangoTestSuiteRunner.run_suite(suite, **kwargs)

    Runs the test suite.

    Returns the result produced by the running the test suite.

.. method:: DjangoTestSuiteRunner.teardown_databases(old_config)
.. method:: DjangoTestSuiteRunner.teardown_databases(old_config, **kwargs)

    Destroys the test databases, restoring pre-test conditions.

@@ -1439,13 +1439,14 @@ set up, execute and tear down the test suite.
    database configuration that need to be reversed. It is the return
    value of the ``setup_databases()`` method.

.. method:: DjangoTestSuiteRunner.teardown_test_environment()
.. method:: DjangoTestSuiteRunner.teardown_test_environment(**kwargs)

    Restores the pre-test environment.

.. method:: DjangoTestSuiteRunner.suite_result(result)
.. method:: DjangoTestSuiteRunner.suite_result(suite, result, **kwargs)

    Computes and returns a return code based on a test suite result.
    Computes and returns a return code based on a test suite, and the result
	from that test suite.


Testing utilities