[Python-checkins] r79777 - python/trunk/Doc/library/unittest.rst

michael.foord python-checkins at python.org
Mon Apr 5 02:39:50 CEST 2010


Author: michael.foord
Date: Mon Apr  5 02:39:50 2010
New Revision: 79777

Log:
Document signal handling functions in unittest.rst

Modified:
   python/trunk/Doc/library/unittest.rst

Modified: python/trunk/Doc/library/unittest.rst
==============================================================================
--- python/trunk/Doc/library/unittest.rst	(original)
+++ python/trunk/Doc/library/unittest.rst	Mon Apr  5 02:39:50 2010
@@ -233,6 +233,8 @@
   reports all the results so far. A second control-C raises the normal
   ``KeyboardInterrupt`` exception.
 
+  See `Signal Handling`_ for the functions that provide this functionality.
+
 * -b / --buffer
 
   The standard out and standard error streams are buffered during the test
@@ -1548,18 +1550,11 @@
 
       Called when the test case *test* is about to be run.
 
-      The default implementation simply increments the instance's :attr:`testsRun`
-      counter.
-
-
    .. method:: stopTest(test)
 
       Called after the test case *test* has been executed, regardless of the
       outcome.
 
-      The default implementation does nothing.
-
-
    .. method:: startTestRun(test)
 
       Called once before any tests are executed.
@@ -1666,7 +1661,7 @@
 
 
 .. function:: main([module[, defaultTest[, argv[, testRunner[, testLoader[, exit[, verbosity[, failfast[, catchbreak[,buffer]]]]]]]]]])
-,
+
    A command-line program that runs a set of tests; this is primarily for making
    test modules conveniently executable.  The simplest use for this function is to
    include the following line at the end of a test script::
@@ -1848,3 +1843,33 @@
 module will be run and the ``tearDownModule`` will not be run.
 
 
+Signal Handling
+---------------
+
+The -c / --catch command line option to unittest, along with the ``catchbreak``
+parameter to :func:`unittest.main()`, provide more friendly handling of
+control-c during a test run. With catch break behavior enabled control-c will
+allow the currently running test to complete, and the test run will then end
+and report all the results so far. A second control-c will raise a
+``KeyboardInterrupt`` in the usual way.
+
+There are a few utility functions for framework authors to enable this
+functionality within test frameworks.
+
+.. function:: installHandler()
+
+   Install the control-C handler. When a :const:`signal.SIGINT` is received
+   (usually in response to the user pressing control-C) all registered results
+   have :meth:`~TestResult.stop` called.
+
+.. function:: registerResult(result)
+
+   Register a :class:`TestResult` object for control-C handling. Registering a
+   result stores a weak reference to it, so it doesn't prevent the result from
+   being garbage collected.
+
+.. function:: removeResult(result)
+
+   Remove a registered result. One a result has been removed then ``stop`` will
+   no longer be called on that result object in response to a control-C.
+


More information about the Python-checkins mailing list