diff options
Diffstat (limited to 'Lib/test/test_asynchat.py')
-rw-r--r-- | Lib/test/test_asynchat.py | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/Lib/test/test_asynchat.py b/Lib/test/test_asynchat.py index 4c79458..5501c2d 100644 --- a/Lib/test/test_asynchat.py +++ b/Lib/test/test_asynchat.py @@ -6,8 +6,7 @@ import unittest import sys from test import test_support -HOST = "127.0.0.1" -PORT = 54322 +HOST = test_support.HOST SERVER_QUIT = 'QUIT\n' class echo_server(threading.Thread): @@ -18,15 +17,13 @@ class echo_server(threading.Thread): def __init__(self, event): threading.Thread.__init__(self) self.event = event + self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + self.port = test_support.bind_port(self.sock) 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) + self.sock.listen(1) self.event.set() - conn, client = sock.accept() + conn, client = self.sock.accept() self.buffer = "" # collect data until quit message is seen while SERVER_QUIT not in self.buffer: @@ -50,15 +47,15 @@ class echo_server(threading.Thread): pass conn.close() - sock.close() + self.sock.close() class echo_client(asynchat.async_chat): - def __init__(self, terminator): + def __init__(self, terminator, server_port): asynchat.async_chat.__init__(self) self.contents = [] self.create_socket(socket.AF_INET, socket.SOCK_STREAM) - self.connect((HOST, PORT)) + self.connect((HOST, server_port)) self.set_terminator(terminator) self.buffer = '' @@ -106,7 +103,7 @@ class TestAsynchat(unittest.TestCase): event.wait() event.clear() time.sleep(0.01) # Give server time to start accepting. - c = echo_client(term) + c = echo_client(term, s.port) c.push("hello ") c.push("world%s" % term) c.push("I'm not dead yet!%s" % term) @@ -138,7 +135,7 @@ class TestAsynchat(unittest.TestCase): def numeric_terminator_check(self, termlen): # Try reading a fixed number of bytes s, event = start_echo_server() - c = echo_client(termlen) + c = echo_client(termlen, s.port) data = "hello world, I'm not dead yet!\n" c.push(data) c.push(SERVER_QUIT) @@ -159,7 +156,7 @@ class TestAsynchat(unittest.TestCase): def test_none_terminator(self): # Try reading a fixed number of bytes s, event = start_echo_server() - c = echo_client(None) + c = echo_client(None, s.port) data = "hello world, I'm not dead yet!\n" c.push(data) c.push(SERVER_QUIT) @@ -171,7 +168,7 @@ class TestAsynchat(unittest.TestCase): def test_simple_producer(self): s, event = start_echo_server() - c = echo_client('\n') + c = echo_client('\n', s.port) data = "hello world\nI'm not dead yet!\n" p = asynchat.simple_producer(data+SERVER_QUIT, buffer_size=8) c.push_with_producer(p) @@ -182,7 +179,7 @@ class TestAsynchat(unittest.TestCase): def test_string_producer(self): s, event = start_echo_server() - c = echo_client('\n') + c = echo_client('\n', s.port) data = "hello world\nI'm not dead yet!\n" c.push_with_producer(data+SERVER_QUIT) asyncore.loop(use_poll=self.usepoll, count=300, timeout=.01) @@ -193,7 +190,7 @@ class TestAsynchat(unittest.TestCase): def test_empty_line(self): # checks that empty lines are handled correctly s, event = start_echo_server() - c = echo_client('\n') + c = echo_client('\n', s.port) c.push("hello world\n\nI'm not dead yet!\n") c.push(SERVER_QUIT) asyncore.loop(use_poll=self.usepoll, count=300, timeout=.01) @@ -203,7 +200,7 @@ class TestAsynchat(unittest.TestCase): def test_close_when_done(self): s, event = start_echo_server() - c = echo_client('\n') + c = echo_client('\n', s.port) c.push("hello world\nI'm not dead yet!\n") c.push(SERVER_QUIT) c.close_when_done() |