Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit aa6a664

Browse files
committed
Add some more basic tests to validate the argument checking of
settimeout(), test settimeout(None), and the interaction between settimeout() and setblocking().
1 parent 24e4af8 commit aa6a664

1 file changed

Lines changed: 51 additions & 1 deletion

File tree

Lib/test/test_timeout.py

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
1-
#!/home/bernie/src/python23/dist/src/python
1+
"""Unit tests for socket timeout feature."""
22

33
import unittest
44
import test_support
55

66
import time
77
import socket
88

9+
910
class CreationTestCase(unittest.TestCase):
1011
"""Test Case for socket.gettimeout() and socket.settimeout()"""
12+
1113
def setUp(self):
1214
self.__s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
1315

@@ -39,9 +41,57 @@ def testReturnType(self):
3941
self.assertEqual(type(self.__s.gettimeout()), type(1.0),
4042
"return type of gettimeout() is not FloatType")
4143

44+
self.__s.settimeout(None)
45+
self.assertEqual(type(self.__s.gettimeout()), type(None),
46+
"return type of gettimeout() is not None")
47+
48+
def testTypeCheck(self):
49+
"Test type checking by settimeout"
50+
self.__s.settimeout(0)
51+
self.__s.settimeout(0L)
52+
self.__s.settimeout(0.0)
53+
self.__s.settimeout(None)
54+
self.assertRaises(TypeError, self.__s.settimeout, "")
55+
self.assertRaises(TypeError, self.__s.settimeout, u"")
56+
self.assertRaises(TypeError, self.__s.settimeout, ())
57+
self.assertRaises(TypeError, self.__s.settimeout, [])
58+
self.assertRaises(TypeError, self.__s.settimeout, {})
59+
self.assertRaises(TypeError, self.__s.settimeout, 0j)
60+
61+
def testRangeCheck(self):
62+
"Test range checking by settimeout"
63+
self.assertRaises(ValueError, self.__s.settimeout, -1)
64+
self.assertRaises(ValueError, self.__s.settimeout, -1L)
65+
self.assertRaises(ValueError, self.__s.settimeout, -1.0)
66+
67+
def testTimeoutThenoBlocking(self):
68+
"Test settimeout followed by setblocking"
69+
self.__s.settimeout(10)
70+
self.__s.setblocking(1)
71+
self.assertEqual(self.__s.gettimeout(), None)
72+
self.__s.setblocking(0)
73+
self.assertEqual(self.__s.gettimeout(), None)
74+
75+
self.__s.settimeout(10)
76+
self.__s.setblocking(0)
77+
self.assertEqual(self.__s.gettimeout(), None)
78+
self.__s.setblocking(1)
79+
self.assertEqual(self.__s.gettimeout(), None)
80+
81+
def testBlockingThenTimeout(self):
82+
"Test setblocking followed by settimeout"
83+
self.__s.setblocking(0)
84+
self.__s.settimeout(1)
85+
self.assertEqual(self.__s.gettimeout(), 1)
86+
87+
self.__s.setblocking(1)
88+
self.__s.settimeout(1)
89+
self.assertEqual(self.__s.gettimeout(), 1)
90+
4291

4392
class TimeoutTestCase(unittest.TestCase):
4493
"""Test Case for socket.socket() timeout functions"""
94+
4595
def setUp(self):
4696
self.__s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
4797
self.__addr_remote = ('www.google.com', 80)

0 commit comments

Comments
 (0)