summaryrefslogtreecommitdiff
path: root/Lib/test/test_socket.py
diff options
context:
space:
mode:
authorFacundo Batista <facundobatista@gmail.com>2007-03-25 01:53:21 +0000
committerFacundo Batista <facundobatista@gmail.com>2007-03-25 01:53:21 +0000
commitb8af7bcad55b00234766662aa13032af22906963 (patch)
tree2e469df7d0de616ad105e1250f3abe715fdd7695 /Lib/test/test_socket.py
parent27ef61ca1851e5c7ad5a5207f54ef318d17668eb (diff)
downloadcpython-git-b8af7bcad55b00234766662aa13032af22906963.tar.gz
Redone the tests, using the infrastructure already present
for threading and socket serving.
Diffstat (limited to 'Lib/test/test_socket.py')
-rw-r--r--Lib/test/test_socket.py118
1 files changed, 65 insertions, 53 deletions
diff --git a/Lib/test/test_socket.py b/Lib/test/test_socket.py
index ade524f807..5be3dc3b5e 100644
--- a/Lib/test/test_socket.py
+++ b/Lib/test/test_socket.py
@@ -820,74 +820,85 @@ class BasicTCPTest2(NetworkConnectionTest, BasicTCPTest):
"""Tests that NetworkConnection does not break existing TCP functionality.
"""
-class NetworkConnectionAttributesTest(unittest.TestCase):
+class NetworkConnectionNoServer(unittest.TestCase):
+ def testWithoutServer(self):
+ self.failUnlessRaises(socket.error, lambda: socket.create_connection((HOST, PORT)))
- 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)
+class NetworkConnectionAttributesTest(SocketTCPTest, ThreadableTest):
- def tearDown(self):
- if self.serv:
- self.serv.close()
- self.serv = None
+ def __init__(self, methodName='runTest'):
+ SocketTCPTest.__init__(self, methodName=methodName)
+ ThreadableTest.__init__(self)
- def testWithoutServer(self):
- self.tearDown()
- self.failUnlessRaises(socket.error, lambda: socket.create_connection((HOST, PORT)))
+ def clientSetUp(self):
+ pass
- def testTimeoutAttribute(self):
- # default
- sock = socket.create_connection((HOST, PORT))
- self.assertTrue(sock.gettimeout() is None)
-
- # a value, named
- sock = socket.create_connection((HOST, PORT), timeout=30)
- self.assertEqual(sock.gettimeout(), 30)
+ def clientTearDown(self):
+ self.cli.close()
+ self.cli = None
+ ThreadableTest.clientTearDown(self)
- # a value, just the value
- sock = socket.create_connection((HOST, PORT), 30)
- self.assertEqual(sock.gettimeout(), 30)
+ 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)
- # None, having other default
+ testTimeoutDefault = _justAccept
+ def _testTimeoutDefault(self):
+ self.cli = socket.create_connection((HOST, PORT))
+ self.assertTrue(self.cli.gettimeout() is None)
+
+ 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)
+
+ 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)
-
- 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):
+ 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 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 @@ def test_main():
LineBufferedFileObjectClassTestCase,
SmallBufferedFileObjectClassTestCase,
Urllib2FileobjectTest,
+ NetworkConnectionNoServer,
NetworkConnectionAttributesTest,
NetworkConnectionBehaviourTest,
])