Author: russellm
Date: 2010-02-22 06:34:52 -0600 (Mon, 22 Feb 2010)
New Revision: 12487

Modified:
   django/trunk/django/test/simple.py
   django/trunk/docs/topics/testing.txt
Log:
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.

Modified: django/trunk/django/test/simple.py
===================================================================
--- django/trunk/django/test/simple.py  2010-02-22 05:00:36 UTC (rev 12486)
+++ django/trunk/django/test/simple.py  2010-02-22 12:34:52 UTC (rev 12487)
@@ -232,16 +232,16 @@
 
 
 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 @@
 
         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 @@
                 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 @@
         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 @@
         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

Modified: django/trunk/docs/topics/testing.txt
===================================================================
--- django/trunk/docs/topics/testing.txt        2010-02-22 05:00:36 UTC (rev 
12486)
+++ django/trunk/docs/topics/testing.txt        2010-02-22 12:34:52 UTC (rev 
12487)
@@ -1371,7 +1371,7 @@
     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 @@
 
     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 @@
 
     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 @@
     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 @@
     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

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-upda...@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to