]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Add test for asynchat. This also tests asyncore.
authorGuido van Rossum <guido@python.org>
Fri, 6 Apr 2001 16:32:22 +0000 (16:32 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 6 Apr 2001 16:32:22 +0000 (16:32 +0000)
Lib/test/output/test_asynchat [new file with mode: 0644]
Lib/test/test_asynchat.py [new file with mode: 0644]

diff --git a/Lib/test/output/test_asynchat b/Lib/test/output/test_asynchat
new file mode 100644 (file)
index 0000000..e2e67f3
--- /dev/null
@@ -0,0 +1,3 @@
+test_asynchat
+Connected
+Received: 'hello world'
diff --git a/Lib/test/test_asynchat.py b/Lib/test/test_asynchat.py
new file mode 100644 (file)
index 0000000..3d31524
--- /dev/null
@@ -0,0 +1,55 @@
+# test asynchat -- requires threading
+
+import asyncore, asynchat, socket, threading
+
+HOST = "127.0.0.1"
+PORT = 54321
+
+class echo_server(threading.Thread):
+
+    def run(self):
+        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+        sock.bind((HOST, PORT))
+        sock.listen(1)
+        conn, client = sock.accept()
+        buffer = ""
+        while "\n" not in buffer:
+            data = conn.recv(10)
+            if not data:
+                break
+            buffer = buffer + data
+        while buffer:
+            n = conn.send(buffer)
+            buffer = buffer[n:]
+        conn.close()
+        sock.close()
+
+class echo_client(asynchat.async_chat):
+
+    def __init__(self):
+        asynchat.async_chat.__init__(self)
+        self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
+        self.connect((HOST, PORT))
+        self.set_terminator("\n")
+        self.buffer = ""
+        self.send("hello ")
+        self.send("world\n")
+
+    def handle_connect(self):
+        print "Connected"
+
+    def collect_incoming_data(self, data):
+        self.buffer = self.buffer + data
+
+    def found_terminator(self):
+        print "Received:", `self.buffer`
+        self.buffer = ""
+        self.close()
+
+def main():
+    s = echo_server()
+    s.start()
+    c = echo_client()
+    asyncore.loop()
+
+main()