diff --git a/tests/__init__.py b/tests/__init__.py index 05779c1..e6fbc11 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -10,6 +10,16 @@ from eventlet import debug, hubs # convenience for importers main = unittest.main + +if sys.version_info[0]<3: + def s2b(string): + return string +else: + def s2b(string): + return bytes(string, 'latin1') + +s2b.__doc__ = """string to bytes. On 2.x no-op on 3.x encodes string in latin1""" + def skipped(func): """ Decorator that marks a function as skipped. Uses nose's SkipTest exception if installed. Without nose, this will count skipped tests as passing tests.""" diff --git a/tests/greenio_test.py b/tests/greenio_test.py index 12a4693..8a654a7 100644 --- a/tests/greenio_test.py +++ b/tests/greenio_test.py @@ -1,5 +1,5 @@ import socket as _orig_sock -from tests import LimitedTestCase, skip_with_pyevent, main, skipped +from tests import LimitedTestCase, skip_with_pyevent, main, skipped, s2b from eventlet import event from eventlet import greenio from eventlet import debug @@ -101,7 +101,7 @@ class TestGreenIo(LimitedTestCase): client.connect(addr) try: - r = client.recv(8192) + client.recv(8192) self.fail("socket.timeout not raised") except socket.timeout, e: self.assert_(hasattr(e, 'args')) @@ -161,7 +161,7 @@ class TestGreenIo(LimitedTestCase): client.connect(addr) try: - r = client.recv_into(buf) + client.recv_into(buf) self.fail("socket.timeout not raised") except socket.timeout, e: self.assert_(hasattr(e, 'args')) @@ -188,7 +188,7 @@ class TestGreenIo(LimitedTestCase): client.connect(addr) try: client.settimeout(0.00001) - msg = "A"*(100000) # large enough number to overwhelm most buffers + msg = s2b("A")*(100000) # large enough number to overwhelm most buffers total_sent = 0 # want to exceed the size of the OS buffer so it'll block in a @@ -223,7 +223,7 @@ class TestGreenIo(LimitedTestCase): client.connect(addr) try: - msg = "A"*(8*1024*1024) + msg = s2b("A")*(8*1024*1024) # want to exceed the size of the OS buffer so it'll block client.sendall(msg) @@ -246,7 +246,7 @@ class TestGreenIo(LimitedTestCase): fd.write('hello\n') fd.close() self.assertWriteToClosedFileRaises(fd) - self.assertRaises(socket.error, conn.send, 'b') + self.assertRaises(socket.error, conn.send, s2b('b')) finally: listener.close() @@ -258,10 +258,10 @@ class TestGreenIo(LimitedTestCase): fd = conn.makefile('w') fd.write('hello') fd.close() - conn.send('\n') + conn.send(s2b('\n')) conn.close() self.assertWriteToClosedFileRaises(fd) - self.assertRaises(socket.error, conn.send, 'b') + self.assertRaises(socket.error, conn.send, s2b('b')) finally: listener.close() @@ -318,7 +318,7 @@ class TestGreenIo(LimitedTestCase): killer.wait() def test_full_duplex(self): - large_data = '*' * 10 * min_buf_size() + large_data = s2b('*') * 10 * min_buf_size() listener = socket.socket(socket.AF_INET, socket.SOCK_STREAM) listener.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR, 1) listener.bind(('127.0.0.1', 0)) @@ -330,7 +330,6 @@ class TestGreenIo(LimitedTestCase): def read_large(sock): result = sock.recv(len(large_data)) - expected = 'hello world' while len(result) < len(large_data): result += sock.recv(len(large_data)) self.assertEquals(result, large_data) @@ -341,7 +340,7 @@ class TestGreenIo(LimitedTestCase): send_large_coro = eventlet.spawn(send_large, sock) eventlet.sleep(0) result = sock.recv(10) - expected = 'hello world' + expected = s2b('hello world') while len(result) < len(expected): result += sock.recv(10) self.assertEquals(result, expected) @@ -353,7 +352,7 @@ class TestGreenIo(LimitedTestCase): bufsized(client) large_evt = eventlet.spawn(read_large, client) eventlet.sleep(0) - client.sendall('hello world') + client.sendall(s2b('hello world')) server_evt.wait() large_evt.wait() client.close() @@ -364,12 +363,12 @@ class TestGreenIo(LimitedTestCase): self.timer.cancel() second_bytes = 10 def test_sendall_impl(many_bytes): - bufsize = max(many_bytes/15, 2) + bufsize = max(many_bytes//15, 2) def sender(listener): (sock, addr) = listener.accept() sock = bufsized(sock, size=bufsize) - sock.sendall('x'*many_bytes) - sock.sendall('y'*second_bytes) + sock.sendall(s2b('x')*many_bytes) + sock.sendall(s2b('y')*second_bytes) listener = socket.socket(socket.AF_INET, socket.SOCK_STREAM) listener.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR, 1) @@ -381,23 +380,23 @@ class TestGreenIo(LimitedTestCase): bufsized(client, size=bufsize) total = 0 while total < many_bytes: - data = client.recv(min(many_bytes - total, many_bytes/10)) - if data == '': + data = client.recv(min(many_bytes - total, many_bytes//10)) + if not data: break total += len(data) total2 = 0 while total < second_bytes: data = client.recv(second_bytes) - if data == '': + if not data: break total2 += len(data) sender_coro.wait() client.close() - for bytes in (1000, 10000, 100000, 1000000): - test_sendall_impl(bytes) + for how_many in (1000, 10000, 100000, 1000000): + test_sendall_impl(how_many) def test_wrap_socket(self): try: @@ -497,7 +496,7 @@ class TestGreenIoLong(LimitedTestCase): def reader(sock, results): while True: data = sock.recv(recvsize) - if data == '': + if not data: break results.append(data) @@ -529,7 +528,7 @@ class TestGreenIoLong(LimitedTestCase): bufsized(client, size=sendsize) else: bufsized(client) - client.sendall('*' * sendsize) + client.sendall(s2b('*') * sendsize) client.close() server_coro.wait() listener.close() @@ -575,7 +574,7 @@ class TestGreenIoStarvation(LimitedTestCase): data = sock.recv(recvsize) if not t1: t1 = time.time() - base_time - if data == '': + if not data: t2 = time.time() - base_time my_results.append(datasize) my_results.append((t1,t2)) @@ -595,7 +594,7 @@ class TestGreenIoStarvation(LimitedTestCase): bufsized(client, size=sendsize) for i in range(sendloops): - client.sendall('*' * sendsize) + client.sendall(s2b('*') * sendsize) client.close() os._exit(0)