From: <pj...@us...> - 2008-10-02 02:31:19
|
Revision: 5356 http://jython.svn.sourceforge.net/jython/?rev=5356&view=rev Author: pjenvey Date: 2008-10-02 02:31:03 +0000 (Thu, 02 Oct 2008) Log Message: ----------- from: http://svn.python.org/projects/python/branches/release25-maint/Lib/test/test_asynchat.py@46906 Added Paths: ----------- trunk/jython/Lib/test/test_asynchat.py Added: trunk/jython/Lib/test/test_asynchat.py =================================================================== --- trunk/jython/Lib/test/test_asynchat.py (rev 0) +++ trunk/jython/Lib/test/test_asynchat.py 2008-10-02 02:31:03 UTC (rev 5356) @@ -0,0 +1,93 @@ +# test asynchat -- requires threading + +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 = 54322 + +class echo_server(threading.Thread): + + def run(self): + sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) + global PORT + PORT = test_support.bind_port(sock, HOST, PORT) + sock.listen(1) + conn, client = sock.accept() + buffer = "" + while "\n" not in buffer: + data = conn.recv(1) + 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, 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(terminator) + self.buffer = "" + + def handle_connect(self): + pass + ##print "Connected" + + def collect_incoming_data(self, data): + self.buffer = self.buffer + data + + def found_terminator(self): + #print "Received:", repr(self.buffer) + self.contents = self.buffer + self.buffer = "" + self.close() + + +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() + s.join() + + 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() + s.join() + + self.assertEqual(c.contents, 'hello ') + + +def test_main(verbose=None): + test_support.run_unittest(TestAsynchat) + +if __name__ == "__main__": + test_main(verbose=True) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nr...@us...> - 2008-12-03 22:08:17
|
Revision: 5687 http://jython.svn.sourceforge.net/jython/?rev=5687&view=rev Author: nriley Date: 2008-12-03 22:08:15 +0000 (Wed, 03 Dec 2008) Log Message: ----------- avoid test_asynchat on Windows too; refs #1064 Modified Paths: -------------- trunk/jython/Lib/test/test_asynchat.py Modified: trunk/jython/Lib/test/test_asynchat.py =================================================================== --- trunk/jython/Lib/test/test_asynchat.py 2008-12-03 21:42:59 UTC (rev 5686) +++ trunk/jython/Lib/test/test_asynchat.py 2008-12-03 22:08:15 UTC (rev 5687) @@ -7,7 +7,7 @@ import platform os_name = platform.java_ver()[3][0] -if os_name == 'Mac OS X' or 'BSD' in os_name: +if os_name == 'Mac OS X' or 'BSD' in os_name or 'Windows' in os_name: raise test_support.TestSkipped('test_asynchat deadlocks on Jython/BSD: ' 'http://bugs.jython.org/issue1064') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nr...@us...> - 2008-12-05 18:43:44
|
Revision: 5704 http://jython.svn.sourceforge.net/jython/?rev=5704&view=rev Author: nriley Date: 2008-12-05 18:43:33 +0000 (Fri, 05 Dec 2008) Log Message: ----------- avoid test_asynchat on Solaris (everywhere but Linux?); refs #1064 Modified Paths: -------------- trunk/jython/Lib/test/test_asynchat.py Modified: trunk/jython/Lib/test/test_asynchat.py =================================================================== --- trunk/jython/Lib/test/test_asynchat.py 2008-12-05 16:10:15 UTC (rev 5703) +++ trunk/jython/Lib/test/test_asynchat.py 2008-12-05 18:43:33 UTC (rev 5704) @@ -7,8 +7,9 @@ import platform os_name = platform.java_ver()[3][0] -if os_name == 'Mac OS X' or 'BSD' in os_name or 'Windows' in os_name: - raise test_support.TestSkipped('test_asynchat deadlocks on Jython/BSD: ' +if os_name == 'Mac OS X' or os_name == 'SunOS' or 'BSD' in os_name \ + or 'Windows' in os_name: + raise test_support.TestSkipped('test_asynchat deadlocks on Jython: ' 'http://bugs.jython.org/issue1064') HOST = "127.0.0.1" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |