[Python-checkins] python/dist/src/Lib/test test_asynchat.py, 1.5, 1.6

akuchling@users.sourceforge.net akuchling at users.sourceforge.net
Thu Jun 9 16:56:34 CEST 2005


Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17416

Modified Files:
	test_asynchat.py 
Log Message:
Convert asynchat test to unittest; exercise the client using a numeric value as the terminator

Index: test_asynchat.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_asynchat.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- test_asynchat.py	12 Feb 2004 17:35:11 -0000	1.5
+++ test_asynchat.py	9 Jun 2005 14:56:31 -0000	1.6
@@ -2,6 +2,8 @@
 
 import thread # If this fails, we can't test this module
 import asyncore, asynchat, socket, threading, time
+import unittest
+from test import test_support
 
 HOST = "127.0.0.1"
 PORT = 54321
@@ -16,7 +18,7 @@
         conn, client = sock.accept()
         buffer = ""
         while "\n" not in buffer:
-            data = conn.recv(10)
+            data = conn.recv(1)
             if not data:
                 break
             buffer = buffer + data
@@ -28,31 +30,61 @@
 
 class echo_client(asynchat.async_chat):
 
-    def __init__(self):
+    def __init__(self, terminator):
         asynchat.async_chat.__init__(self)
+        self.contents = None
         self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
         self.connect((HOST, PORT))
-        self.set_terminator("\n")
+        self.set_terminator(terminator)
         self.buffer = ""
 
     def handle_connect(self):
-        print "Connected"
+        pass
+        ##print "Connected"
 
     def collect_incoming_data(self, data):
         self.buffer = self.buffer + data
 
     def found_terminator(self):
-        print "Received:", repr(self.buffer)
+        #print "Received:", repr(self.buffer)
+        self.contents = self.buffer
         self.buffer = ""
         self.close()
 
-def main():
-    s = echo_server()
-    s.start()
-    time.sleep(1) # Give server time to initialize
-    c = echo_client()
-    c.push("hello ")
-    c.push("world\n")
-    asyncore.loop()
 
-main()
+class TestAsynchat(unittest.TestCase):
+    def setUp (self):
+        pass
+
+    def tearDown (self):
+        pass
+
+    def test_line_terminator(self):
+        s = echo_server()
+        s.start()
+        time.sleep(1) # Give server time to initialize
+        c = echo_client('\n')
+        c.push("hello ")
+        c.push("world\n")
+        asyncore.loop()
+
+        self.assertEqual(c.contents, 'hello world')
+
+    def test_numeric_terminator(self):
+        # Try reading a fixed number of bytes
+        s = echo_server()
+        s.start()
+        time.sleep(1) # Give server time to initialize
+        c = echo_client(6L)
+        c.push("hello ")
+        c.push("world\n")
+        asyncore.loop()
+
+        self.assertEqual(c.contents, 'hello ')
+
+
+def test_main(verbose=None):
+    test_support.run_unittest(TestAsynchat)
+
+if __name__ == "__main__":
+    test_main(verbose=True)



More information about the Python-checkins mailing list