[Python-checkins] r46960 - in sandbox/trunk/pdb: mconnection.py test/tcptest.py

matt.fleming python-checkins at python.org
Wed Jun 14 17:52:33 CEST 2006


Author: matt.fleming
Date: Wed Jun 14 17:52:33 2006
New Revision: 46960
Modified:
 sandbox/trunk/pdb/mconnection.py
 sandbox/trunk/pdb/test/tcptest.py
Log:
Move import of socket module nearer to the classes that actually use it in 
mconnection.py. Also change the TCP connection unit test to use 
threading.Timer instead of os.fork.
Modified: sandbox/trunk/pdb/mconnection.py
==============================================================================
--- sandbox/trunk/pdb/mconnection.py	(original)
+++ sandbox/trunk/pdb/mconnection.py	Wed Jun 14 17:52:33 2006
@@ -1,7 +1,6 @@
 """ This file contains all connections that a debugger can
 create.
 """
-import socket
 
 NotImplementedMessage = "This method must be overriden in a subclass"
 
@@ -90,6 +89,8 @@
 MClientConnectionSerial = MServerConnectionSerial
 
 ### This might go in a different file
+import socket
+
 class MServerConnectionTCP(MServerConnectionInterface):
 """This is an implementation of a server class that uses the TCP
 protocol as its means of communication.
Modified: sandbox/trunk/pdb/test/tcptest.py
==============================================================================
--- sandbox/trunk/pdb/test/tcptest.py	(original)
+++ sandbox/trunk/pdb/test/tcptest.py	Wed Jun 14 17:52:33 2006
@@ -2,7 +2,7 @@
 import os
 import sys
 import socket
-import time
+import threading
 import unittest
 
 __addr__ = 'localhost:8000'
@@ -12,26 +12,20 @@
 
 class TestTCPConnections(unittest.TestCase):
 def testClientConnectAndRead(self):
- pid = os.fork()
- if pid == 0:
- # Child
- self.server = MServerConnectionTCP()
- self.server.connect(__addr__)
- self.server.write("good")
- self.server.disconnect()
- else:
- # Parent
- self.client = MClientConnectionTCP()
- for i in range(30):
- try:
- self.client.connect(__addr__)
- break
- except socket.error:
- pass
- time.sleep(5)
- line = self.client.readline()
- self.assertEqual("good", line, "Could not read from server")
- self.client.disconnect()
+ self.server = MServerConnectionTCP()
+ self.client = MClientConnectionTCP()
+ # Create a new thread for the client and delay for 3 seconds
+ t = threading.Timer(3.0, self.client.connect, [__addr__])
+ t.start()
+ # Start server, which waits for a connection. self.client will connect
+ # in a few seconds
+ self.server.connect(__addr__)
+
+ self.server.write("good")
+ line = self.client.readline()
+ self.assertEqual("good", line, "Could not read from server")
+ self.server.disconnect()
+ self.client.disconnect()
 
 if __name__ == '__main__':
 unittest.main()


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /