[Python-checkins] r75836 - in python/branches/py3k: Lib/test/test_asyncore.py

antoine.pitrou python-checkins at python.org
Tue Oct 27 19:49:23 CET 2009


Author: antoine.pitrou
Date: Tue Oct 27 19:49:23 2009
New Revision: 75836

Log:
Merged revisions 75826 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r75826 | antoine.pitrou | 2009-10-27 19:36:47 +0100 (mar., 27 oct. 2009) | 3 lines
  
  Suppress transient refleaks in test_asyncore
........


Modified:
   python/branches/py3k/   (props changed)
   python/branches/py3k/Lib/test/test_asyncore.py

Modified: python/branches/py3k/Lib/test/test_asyncore.py
==============================================================================
--- python/branches/py3k/Lib/test/test_asyncore.py	(original)
+++ python/branches/py3k/Lib/test/test_asyncore.py	Tue Oct 27 19:49:23 2009
@@ -320,40 +320,44 @@
     def tearDown(self):
         asyncore.close_all()
 
+    @support.reap_threads
     def test_send(self):
-        self.evt = threading.Event()
-        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-        self.sock.settimeout(3)
-        self.port = support.bind_port(self.sock)
+        evt = threading.Event()
+        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+        sock.settimeout(3)
+        port = support.bind_port(sock)
 
         cap = BytesIO()
-        args = (self.evt, cap, self.sock)
-        threading.Thread(target=capture_server, args=args).start()
-
-        # wait a little longer for the server to initialize (it sometimes
-        # refuses connections on slow machines without this wait)
-        time.sleep(0.2)
-
-        data = b"Suppose there isn't a 16-ton weight?"
-        d = dispatcherwithsend_noread()
-        d.create_socket(socket.AF_INET, socket.SOCK_STREAM)
-        d.connect((HOST, self.port))
-
-        # give time for socket to connect
-        time.sleep(0.1)
-
-        d.send(data)
-        d.send(data)
-        d.send(b'\n')
-
-        n = 1000
-        while d.out_buffer and n > 0:
-            asyncore.poll()
-            n -= 1
-
-        self.evt.wait()
-
-        self.assertEqual(cap.getvalue(), data*2)
+        args = (evt, cap, sock)
+        t = threading.Thread(target=capture_server, args=args)
+        t.start()
+        try:
+            # wait a little longer for the server to initialize (it sometimes
+            # refuses connections on slow machines without this wait)
+            time.sleep(0.2)
+
+            data = b"Suppose there isn't a 16-ton weight?"
+            d = dispatcherwithsend_noread()
+            d.create_socket(socket.AF_INET, socket.SOCK_STREAM)
+            d.connect((HOST, port))
+
+            # give time for socket to connect
+            time.sleep(0.1)
+
+            d.send(data)
+            d.send(data)
+            d.send(b'\n')
+
+            n = 1000
+            while d.out_buffer and n > 0:
+                asyncore.poll()
+                n -= 1
+
+            evt.wait()
+
+            self.assertEqual(cap.getvalue(), data*2)
+        finally:
+            t.join()
 
 
 class DispatcherWithSendTests_UsePoll(DispatcherWithSendTests):


More information about the Python-checkins mailing list