[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

AltStyle によって変換されたページ (->オリジナル) /