]> granicus.if.org Git - python/commitdiff
Issue #7449, part 1: fix test_support.py for Python compiled without thread
authorVictor Stinner <victor.stinner@haypocalc.com>
Tue, 27 Apr 2010 21:46:03 +0000 (21:46 +0000)
committerVictor Stinner <victor.stinner@haypocalc.com>
Tue, 27 Apr 2010 21:46:03 +0000 (21:46 +0000)
Lib/test/test_support.py
Misc/NEWS

index d76d569a452be2c52b5e3ac61953f5d105f5f614..7dc52bbbc9b40504c218b7f49c490e4eca8f94b3 100644 (file)
@@ -18,6 +18,10 @@ import importlib
 import UserDict
 import re
 import time
+try:
+    import thread
+except ImportError:
+    thread = None
 
 __all__ = ["Error", "TestFailed", "ResourceDenied", "import_module",
            "verbose", "use_resources", "max_memuse", "record_original_stdout",
@@ -44,7 +48,7 @@ class ResourceDenied(unittest.SkipTest):
     """Test skipped because it requested a disallowed resource.
 
     This is raised when a test calls requires() for a resource that
-    has not be enabled.  It is used to distinguish between expected
+    has not been enabled.  It is used to distinguish between expected
     and unexpected skips.
     """
 
@@ -1078,11 +1082,14 @@ def run_doctest(module, verbosity=None):
 # at the end of a test run.
 
 def threading_setup():
-    import thread
-    return thread._count(),
+    if thread:
+        return thread._count(),
+    else:
+        return 1,
 
 def threading_cleanup(nb_threads):
-    import thread
+    if not thread:
+        return
 
     _MAX_COUNT = 10
     for count in range(_MAX_COUNT):
@@ -1093,6 +1100,13 @@ def threading_cleanup(nb_threads):
     # XXX print a warning in case of failure?
 
 def reap_threads(func):
+    """Use this function when threads are being used.  This will
+    ensure that the threads are cleaned up even when the test fails.
+    If threading is unavailable this function does nothing.
+    """
+    if not thread:
+        return func
+
     @functools.wraps(func)
     def decorator(*args):
         key = threading_setup()
index de05472f56a05a4ed61e384e13b7bf92d81b87d1..7ba33ba12a984f4876217cd1409f67904f8ae0a0 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -109,6 +109,8 @@ Extension Modules
 Tests
 -----
 
+- Issue #7449: Fix many tests to support Python compiled without thread support
+
 - Issue #8108: test_ftplib's non-blocking SSL server now has proper handling
   of SSL shutdowns.