Browse files

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: bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
freakboy3742 committed Feb 22, 2010
1 parent a9b2ac2 commit 2fc19d8d6f369d4bd1ef8c7175c241a10e24c6f0
Showing with 20 additions and 19 deletions.
  1. +10 −10 django/test/
  2. +10 −9 docs/topics/testing.txt
@@ -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):
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 @@ def build_suite(self, test_labels, extra_tests=None):
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 @@ def setup_databases(self):
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 @@ def teardown_databases(self, old_config):
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):
- 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 @@ def run_tests(self, test_labels, extra_tests=None):
result = self.run_suite(suite)
- 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
@@ -1371,7 +1371,7 @@ set up, execute and tear down the test suite.
write your own test runner, ensure accept and handle the ``**kwargs``
-.. 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,35 +1417,36 @@ 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.
Returns a data structure that provides enough detail to undo the changes
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.
``old_config`` is a data structure defining the changes in the
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

0 comments on commit 2fc19d8

Please sign in to comment.