[Python-checkins] r54568 - python/trunk/Lib/test/test_socket.py
facundo.batista
python-checkins at python.org
Sun Mar 25 03:53:25 CEST 2007
Author: facundo.batista
Date: Sun Mar 25 03:53:21 2007
New Revision: 54568
Modified:
python/trunk/Lib/test/test_socket.py
Log:
Redone the tests, using the infrastructure already present
for threading and socket serving.
Modified: python/trunk/Lib/test/test_socket.py
==============================================================================
--- python/trunk/Lib/test/test_socket.py (original)
+++ python/trunk/Lib/test/test_socket.py Sun Mar 25 03:53:21 2007
@@ -820,74 +820,85 @@
"""Tests that NetworkConnection does not break existing TCP functionality.
"""
-class NetworkConnectionAttributesTest(unittest.TestCase):
-
- def setUp(self):
- self.serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- self.serv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- global PORT
- PORT = test_support.bind_port(self.serv, HOST, PORT)
- self.serv.listen(1)
-
- def tearDown(self):
- if self.serv:
- self.serv.close()
- self.serv = None
-
+class NetworkConnectionNoServer(unittest.TestCase):
def testWithoutServer(self):
- self.tearDown()
self.failUnlessRaises(socket.error, lambda: socket.create_connection((HOST, PORT)))
- def testTimeoutAttribute(self):
- # default
- sock = socket.create_connection((HOST, PORT))
- self.assertTrue(sock.gettimeout() is None)
+class NetworkConnectionAttributesTest(SocketTCPTest, ThreadableTest):
+
+ def __init__(self, methodName='runTest'):
+ SocketTCPTest.__init__(self, methodName=methodName)
+ ThreadableTest.__init__(self)
+
+ def clientSetUp(self):
+ pass
+
+ def clientTearDown(self):
+ self.cli.close()
+ self.cli = None
+ ThreadableTest.clientTearDown(self)
+
+ def _justAccept(self):
+ conn, addr = self.serv.accept()
+
+ testFamily = _justAccept
+ def _testFamily(self):
+ self.cli = socket.create_connection((HOST, PORT), timeout=30)
+ self.assertEqual(self.cli.family, 2)
+
+ testTimeoutDefault = _justAccept
+ def _testTimeoutDefault(self):
+ self.cli = socket.create_connection((HOST, PORT))
+ self.assertTrue(self.cli.gettimeout() is None)
- # a value, named
- sock = socket.create_connection((HOST, PORT), timeout=30)
- self.assertEqual(sock.gettimeout(), 30)
-
- # a value, just the value
- sock = socket.create_connection((HOST, PORT), 30)
- self.assertEqual(sock.gettimeout(), 30)
+ testTimeoutValueNamed = _justAccept
+ def _testTimeoutValueNamed(self):
+ self.cli = socket.create_connection((HOST, PORT), timeout=30)
+ self.assertEqual(self.cli.gettimeout(), 30)
+
+ testTimeoutValueNonamed = _justAccept
+ def _testTimeoutValueNonamed(self):
+ self.cli = socket.create_connection((HOST, PORT), 30)
+ self.assertEqual(self.cli.gettimeout(), 30)
- # None, having other default
+ testTimeoutNone = _justAccept
+ def _testTimeoutNone(self):
previous = socket.getdefaulttimeout()
socket.setdefaulttimeout(30)
try:
- sock = socket.create_connection((HOST, PORT), timeout=None)
+ self.cli = socket.create_connection((HOST, PORT), timeout=None)
finally:
socket.setdefaulttimeout(previous)
- self.assertEqual(sock.gettimeout(), 30)
+ self.assertEqual(self.cli.gettimeout(), 30)
+
+
+class NetworkConnectionBehaviourTest(SocketTCPTest, ThreadableTest):
+
+ def __init__(self, methodName='runTest'):
+ SocketTCPTest.__init__(self, methodName=methodName)
+ ThreadableTest.__init__(self)
+
+ def clientSetUp(self):
+ pass
+
+ def clientTearDown(self):
+ self.cli.close()
+ self.cli = None
+ ThreadableTest.clientTearDown(self)
- def testFamily(self):
- sock = socket.create_connection((HOST, PORT), timeout=30)
- self.assertEqual(sock.family, 2)
-
-
-def threadedServer(delay):
- serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- serv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
- global PORT
- PORT = test_support.bind_port(serv, HOST, PORT)
- serv.listen(1)
- conn, addr = serv.accept()
- time.sleep(delay)
- conn.send("done!")
- conn.close()
-
-class NetworkConnectionBehaviourTest(unittest.TestCase):
def testInsideTimeout(self):
- threading.Thread(target=threadedServer, args=(3,)).start()
- time.sleep(.1)
- sock = socket.create_connection((HOST, PORT))
+ conn, addr = self.serv.accept()
+ time.sleep(3)
+ conn.send("done!")
+ testOutsideTimeout = testInsideTimeout
+
+ def _testInsideTimeout(self):
+ self.cli = sock = socket.create_connection((HOST, PORT))
data = sock.recv(5)
self.assertEqual(data, "done!")
- def testOutsideTimeout(self):
- threading.Thread(target=threadedServer, args=(3,)).start()
- time.sleep(.1)
- sock = socket.create_connection((HOST, PORT), timeout=1)
+ def _testOutsideTimeout(self):
+ self.cli = sock = socket.create_connection((HOST, PORT), timeout=1)
self.failUnlessRaises(socket.timeout, lambda: sock.recv(5))
@@ -1069,6 +1080,7 @@
LineBufferedFileObjectClassTestCase,
SmallBufferedFileObjectClassTestCase,
Urllib2FileobjectTest,
+ NetworkConnectionNoServer,
NetworkConnectionAttributesTest,
NetworkConnectionBehaviourTest,
])
More information about the Python-checkins
mailing list