summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_socket.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2007-05-21 23:13:11 (GMT)
committerGuido van Rossum <guido@python.org>2007-05-21 23:13:11 (GMT)
commit7d0a8264ff29fe8963bb1cc67debc03e7c728a98 (patch)
treebb50e8fb32745b01279619826cb5bb30f2ccac12 /Lib/test/test_socket.py
parent88effc1251c295b0e70961b587fe0de63bf10754 (diff)
downloadcpython-7d0a8264ff29fe8963bb1cc67debc03e7c728a98.zip
cpython-7d0a8264ff29fe8963bb1cc67debc03e7c728a98.tar.gz
cpython-7d0a8264ff29fe8963bb1cc67debc03e7c728a98.tar.bz2
Sockets facelift. APIs that could return binary data (e.g. aton() and
recv()) now return bytes, not str or str8. The socket.py code is redone; it now subclasses _socket.socket and instead of having its own _fileobject for makefile(), it uses io.SocketIO. Some stuff in io.py was moved around to make this work. (I really need to rethink my policy regarding readline() and read(-1) on raw files; and readline() on buffered files ought to use peeking(). Later.)
Diffstat (limited to 'Lib/test/test_socket.py')
-rw-r--r--Lib/test/test_socket.py55
1 files changed, 16 insertions, 39 deletions
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index 350aded..5158378 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -14,7 +14,7 @@ import signal
PORT = 50007
HOST = 'localhost'
-MSG = 'Michael Gilfix was here\n'
+MSG = b'Michael Gilfix was here\n'
class SocketTCPTest(unittest.TestCase):
@@ -542,16 +542,16 @@ class BasicTCPTest(SocketConnectedTest):
def testSendAll(self):
# Testing sendall() with a 2048 byte string over TCP
- msg = ''
+ msg = b''
while 1:
read = self.cli_conn.recv(1024)
if not read:
break
msg += read
- self.assertEqual(msg, 'f' * 2048)
+ self.assertEqual(msg, b'f' * 2048)
def _testSendAll(self):
- big_chunk = 'f' * 2048
+ big_chunk = b'f' * 2048
self.serv_conn.sendall(big_chunk)
def testFromFd(self):
@@ -612,7 +612,7 @@ class TCPCloserTest(ThreadedTCPSocketTest):
sd = self.cli
read, write, err = select.select([sd], [], [], 1.0)
self.assertEqual(read, [sd])
- self.assertEqual(sd.recv(1), '')
+ self.assertEqual(sd.recv(1), b'')
def _testClose(self):
self.cli.connect((HOST, PORT))
@@ -754,7 +754,7 @@ class FileObjectClassTestCase(SocketConnectedTest):
def testUnbufferedRead(self):
# Performing unbuffered file read test
- buf = ''
+ buf = b''
while 1:
char = self.serv_file.read(1)
if not char:
@@ -796,14 +796,14 @@ class UnbufferedFileObjectClassTestCase(FileObjectClassTestCase):
def testUnbufferedReadline(self):
# Read a line, create a new file object, read another line with it
line = self.serv_file.readline() # first line
- self.assertEqual(line, "A. " + MSG) # first line
+ self.assertEqual(line, b"A. " + MSG) # first line
self.serv_file = self.cli_conn.makefile('rb', 0)
line = self.serv_file.readline() # second line
- self.assertEqual(line, "B. " + MSG) # second line
+ self.assertEqual(line, b"B. " + MSG) # second line
def _testUnbufferedReadline(self):
- self.cli_file.write("A. " + MSG)
- self.cli_file.write("B. " + MSG)
+ self.cli_file.write(b"A. " + MSG)
+ self.cli_file.write(b"B. " + MSG)
self.cli_file.flush()
class LineBufferedFileObjectClassTestCase(FileObjectClassTestCase):
@@ -818,6 +818,7 @@ class SmallBufferedFileObjectClassTestCase(FileObjectClassTestCase):
class NetworkConnectionTest(object):
"""Prove network connection."""
+
def clientSetUp(self):
self.cli = socket.create_connection((HOST, PORT))
self.serv_conn = self.cli
@@ -827,6 +828,7 @@ class BasicTCPTest2(NetworkConnectionTest, BasicTCPTest):
"""
class NetworkConnectionNoServer(unittest.TestCase):
+
def testWithoutServer(self):
self.failUnlessRaises(socket.error, lambda: socket.create_connection((HOST, PORT)))
@@ -895,43 +897,19 @@ class NetworkConnectionBehaviourTest(SocketTCPTest, ThreadableTest):
def testInsideTimeout(self):
conn, addr = self.serv.accept()
time.sleep(3)
- conn.send("done!")
+ conn.send(b"done!")
testOutsideTimeout = testInsideTimeout
def _testInsideTimeout(self):
self.cli = sock = socket.create_connection((HOST, PORT))
data = sock.recv(5)
- self.assertEqual(data, "done!")
+ self.assertEqual(data, b"done!")
def _testOutsideTimeout(self):
self.cli = sock = socket.create_connection((HOST, PORT), timeout=1)
self.failUnlessRaises(socket.timeout, lambda: sock.recv(5))
-class Urllib2FileobjectTest(unittest.TestCase):
-
- # urllib2.HTTPHandler has "borrowed" socket._fileobject, and requires that
- # it close the socket if the close c'tor argument is true
-
- def testClose(self):
- class MockSocket:
- closed = False
- def flush(self): pass
- def close(self): self.closed = True
-
- # must not close unless we request it: the original use of _fileobject
- # by module socket requires that the underlying socket not be closed until
- # the _socketobject that created the _fileobject is closed
- s = MockSocket()
- f = socket._fileobject(s)
- f.close()
- self.assert_(not s.closed)
-
- s = MockSocket()
- f = socket._fileobject(s, close=True)
- f.close()
- self.assert_(s.closed)
-
class TCPTimeoutTest(SocketTCPTest):
def testTCPTimeout(self):
@@ -1055,7 +1033,7 @@ class BufferIOTest(SocketConnectedTest):
buf = b" "*1024
nbytes = self.cli_conn.recv_into(buf)
self.assertEqual(nbytes, len(MSG))
- msg = str(buf[:len(MSG)])
+ msg = buf[:len(MSG)]
self.assertEqual(msg, MSG)
def _testRecvInto(self):
@@ -1066,7 +1044,7 @@ class BufferIOTest(SocketConnectedTest):
buf = b" "*1024
nbytes, addr = self.cli_conn.recvfrom_into(buf)
self.assertEqual(nbytes, len(MSG))
- msg = str(buf[:len(MSG)])
+ msg = buf[:len(MSG)]
self.assertEqual(msg, MSG)
def _testRecvFromInto(self):
@@ -1085,7 +1063,6 @@ def test_main():
UnbufferedFileObjectClassTestCase,
LineBufferedFileObjectClassTestCase,
SmallBufferedFileObjectClassTestCase,
- Urllib2FileobjectTest,
NetworkConnectionNoServer,
NetworkConnectionAttributesTest,
NetworkConnectionBehaviourTest,