Fix test_asyncore after merge. It needs to use bytes.
This commit is contained in:
parent
b5a755e46c
commit
df4a743ac0
|
@ -344,14 +344,14 @@ class dispatcher:
|
||||||
# a closed connection is indicated by signaling
|
# a closed connection is indicated by signaling
|
||||||
# a read condition, and having recv() return 0.
|
# a read condition, and having recv() return 0.
|
||||||
self.handle_close()
|
self.handle_close()
|
||||||
return ''
|
return b''
|
||||||
else:
|
else:
|
||||||
return data
|
return data
|
||||||
except socket.error as why:
|
except socket.error as why:
|
||||||
# winsock sometimes throws ENOTCONN
|
# winsock sometimes throws ENOTCONN
|
||||||
if why[0] in [ECONNRESET, ENOTCONN, ESHUTDOWN]:
|
if why[0] in [ECONNRESET, ENOTCONN, ESHUTDOWN]:
|
||||||
self.handle_close()
|
self.handle_close()
|
||||||
return ''
|
return b''
|
||||||
else:
|
else:
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
@ -447,7 +447,7 @@ class dispatcher_with_send(dispatcher):
|
||||||
|
|
||||||
def __init__(self, sock=None, map=None):
|
def __init__(self, sock=None, map=None):
|
||||||
dispatcher.__init__(self, sock, map)
|
dispatcher.__init__(self, sock, map)
|
||||||
self.out_buffer = ''
|
self.out_buffer = b''
|
||||||
|
|
||||||
def initiate_send(self):
|
def initiate_send(self):
|
||||||
num_sent = 0
|
num_sent = 0
|
||||||
|
@ -461,6 +461,7 @@ class dispatcher_with_send(dispatcher):
|
||||||
return (not self.connected) or len(self.out_buffer)
|
return (not self.connected) or len(self.out_buffer)
|
||||||
|
|
||||||
def send(self, data):
|
def send(self, data):
|
||||||
|
assert isinstance(data, bytes)
|
||||||
if self.debug:
|
if self.debug:
|
||||||
self.log_info('sending %s' % repr(data))
|
self.log_info('sending %s' % repr(data))
|
||||||
self.out_buffer = self.out_buffer + data
|
self.out_buffer = self.out_buffer + data
|
||||||
|
|
|
@ -9,7 +9,7 @@ import time
|
||||||
|
|
||||||
from test import test_support
|
from test import test_support
|
||||||
from test.test_support import TESTFN, run_unittest, unlink
|
from test.test_support import TESTFN, run_unittest, unlink
|
||||||
from StringIO import StringIO
|
from io import StringIO, BytesIO
|
||||||
|
|
||||||
HOST = "127.0.0.1"
|
HOST = "127.0.0.1"
|
||||||
PORT = 54329
|
PORT = 54329
|
||||||
|
@ -66,9 +66,10 @@ def capture_server(evt, buf):
|
||||||
n = 200
|
n = 200
|
||||||
while n > 0:
|
while n > 0:
|
||||||
data = conn.recv(10)
|
data = conn.recv(10)
|
||||||
|
assert isinstance(data, bytes)
|
||||||
# keep everything except for the newline terminator
|
# keep everything except for the newline terminator
|
||||||
buf.write(data.replace('\n', ''))
|
buf.write(data.replace(b'\n', b''))
|
||||||
if '\n' in data:
|
if b'\n' in data:
|
||||||
break
|
break
|
||||||
n -= 1
|
n -= 1
|
||||||
time.sleep(0.01)
|
time.sleep(0.01)
|
||||||
|
@ -338,16 +339,16 @@ class DispatcherWithSendTests(unittest.TestCase):
|
||||||
|
|
||||||
def test_send(self):
|
def test_send(self):
|
||||||
self.evt = threading.Event()
|
self.evt = threading.Event()
|
||||||
cap = StringIO()
|
cap = BytesIO()
|
||||||
threading.Thread(target=capture_server, args=(self.evt,cap)).start()
|
threading.Thread(target=capture_server, args=(self.evt, cap)).start()
|
||||||
time.sleep(1) # Give server time to initialize
|
time.sleep(1) # Give server time to initialize
|
||||||
|
|
||||||
data = "Suppose there isn't a 16-ton weight?"*5
|
data = b"Suppose there isn't a 16-ton weight?"*5
|
||||||
d = dispatcherwithsend_noread()
|
d = dispatcherwithsend_noread()
|
||||||
d.create_socket(socket.AF_INET, socket.SOCK_STREAM)
|
d.create_socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
d.connect((HOST, PORT))
|
d.connect((HOST, PORT))
|
||||||
d.send(data)
|
d.send(data)
|
||||||
d.send('\n')
|
d.send(b'\n')
|
||||||
|
|
||||||
n = 1000
|
n = 1000
|
||||||
while d.out_buffer and n > 0:
|
while d.out_buffer and n > 0:
|
||||||
|
@ -366,7 +367,7 @@ if hasattr(asyncore, 'file_wrapper'):
|
||||||
class FileWrapperTest(unittest.TestCase):
|
class FileWrapperTest(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.d = "It's not dead, it's sleeping!"
|
self.d = "It's not dead, it's sleeping!"
|
||||||
file(TESTFN, 'w').write(self.d)
|
open(TESTFN, 'w').write(self.d)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
unlink(TESTFN)
|
unlink(TESTFN)
|
||||||
|
@ -377,8 +378,8 @@ if hasattr(asyncore, 'file_wrapper'):
|
||||||
|
|
||||||
self.assertEqual(w.fd, fd)
|
self.assertEqual(w.fd, fd)
|
||||||
self.assertEqual(w.fileno(), fd)
|
self.assertEqual(w.fileno(), fd)
|
||||||
self.assertEqual(w.recv(13), "It's not dead")
|
self.assertEqual(w.recv(13), b"It's not dead")
|
||||||
self.assertEqual(w.read(6), ", it's")
|
self.assertEqual(w.read(6), b", it's")
|
||||||
w.close()
|
w.close()
|
||||||
self.assertRaises(OSError, w.read, 1)
|
self.assertRaises(OSError, w.read, 1)
|
||||||
|
|
||||||
|
@ -391,7 +392,7 @@ if hasattr(asyncore, 'file_wrapper'):
|
||||||
w.write(d1)
|
w.write(d1)
|
||||||
w.send(d2)
|
w.send(d2)
|
||||||
w.close()
|
w.close()
|
||||||
self.assertEqual(file(TESTFN).read(), self.d + d1 + d2)
|
self.assertEqual(open(TESTFN).read(), self.d + d1 + d2)
|
||||||
|
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
|
|
Loading…
Reference in New Issue