diff options
author | Benjamin Peterson <benjamin@python.org> | 2009-05-14 22:40:34 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2009-05-14 22:40:34 (GMT) |
commit | 0db3cd6700d18f3bfcaf71405d5da43c1928d55e (patch) | |
tree | e24f9f80510789cd38cd5f788382f4b1dc4a0666 /Lib | |
parent | 92d102bf6d90e015360f71c370b540151b4acdba (diff) | |
download | cpython-0db3cd6700d18f3bfcaf71405d5da43c1928d55e.zip cpython-0db3cd6700d18f3bfcaf71405d5da43c1928d55e.tar.gz cpython-0db3cd6700d18f3bfcaf71405d5da43c1928d55e.tar.bz2 |
a useful decorator for cleaning up threads
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_hashlib.py | 9 | ||||
-rw-r--r-- | Lib/test/test_support.py | 11 |
2 files changed, 13 insertions, 7 deletions
diff --git a/Lib/test/test_hashlib.py b/Lib/test/test_hashlib.py index b736755..e77b246 100644 --- a/Lib/test/test_hashlib.py +++ b/Lib/test/test_hashlib.py @@ -254,14 +254,9 @@ class HashLibTestCase(unittest.TestCase): self.assertEqual(expected_hash, hasher.hexdigest()) - +@test_support.reap_threads def test_main(): - key = test_support.threading_setup() - try: - test_support.run_unittest(HashLibTestCase) - finally: - test_support.threading_cleanup(*key) - + test_support.run_unittest(HashLibTestCase) if __name__ == "__main__": test_main() diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py index 7d0ec8d..52dd16e 100644 --- a/Lib/test/test_support.py +++ b/Lib/test/test_support.py @@ -5,6 +5,7 @@ if __name__ != 'test.test_support': import contextlib import errno +import functools import socket import sys import os @@ -934,6 +935,16 @@ def threading_cleanup(num_active, num_limbo): count += 1 time.sleep(0.1) +def reap_threads(func): + @functools.wraps(func) + def decorator(*args): + key = threading_setup() + try: + return func(*args) + finally: + threading_cleanup(*key) + return decorator + def reap_children(): """Use this function at the end of test_main() whenever sub-processes are started. This will help ensure that no extra children (zombies) |