summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Forcier <jeff@bitprophet.org>2012-09-10 11:34:52 -0700
committerJeff Forcier <jeff@bitprophet.org>2012-09-24 18:59:33 -0700
commite0be91a4c9804828f4a2531cfdb785ff978e10cf (patch)
tree8d24f7d6a2294eaaf4af4e40f314c479300e2148
parent212fe74f099fa240a73f3c42cf7e11bd56d7f885 (diff)
downloadparamiko-e0be91a4c9804828f4a2531cfdb785ff978e10cf.tar.gz
Fixes to failing-test teardowns to avoid more exceptions or hangs
(cherry picked from commit 734f3d6f42ef1564f473fee5526e0354fc8196fc) Conflicts: test.py
-rwxr-xr-xtest.py8
-rw-r--r--tests/test_client.py8
2 files changed, 10 insertions, 6 deletions
diff --git a/test.py b/test.py
index c0e9d151..28ebbdb5 100755
--- a/test.py
+++ b/test.py
@@ -28,6 +28,7 @@ import sys
import unittest
from optparse import OptionParser
import paramiko
+import threading
sys.path.append('tests')
@@ -141,7 +142,12 @@ def main():
if len(args) > 0:
filter = '|'.join(args)
suite = filter_suite_by_re(suite, filter)
- runner.run(suite)
+ result = runner.run(suite)
+ # Clean up stale threads from poorly cleaned-up tests.
+ # TODO: make that not a problem, jeez
+ for thread in threading.enumerate():
+ if thread is not threading.currentThread():
+ thread._Thread__stop()
if __name__ == '__main__':
diff --git a/tests/test_client.py b/tests/test_client.py
index 2f9b9a76..08ef1f92 100644
--- a/tests/test_client.py
+++ b/tests/test_client.py
@@ -68,11 +68,9 @@ class SSHClientTest (unittest.TestCase):
thread.start()
def tearDown(self):
- if hasattr(self, 'tc'):
- self.tc.close()
- self.ts.close()
- self.socks.close()
- self.sockl.close()
+ for attr in "tc ts socks sockl".split():
+ if hasattr(self, attr):
+ getattr(self, attr).close()
def _run(self):
self.socks, addr = self.sockl.accept()